Причина, по которой мне нужно это сделать, заключается в том, что мне нужно изменить текст метки без использования записей;Вместо этого я хочу использовать события.
Я пробовал это:
import tkinter as tk
root = tk.Tk()
root.bind("<Button-1>", lambda _: root.focus())
l = tk.Label(root, width=50, height=50, bg="white")
l.bind("<Button-1>", lambda _: l.focus())
l.bind("1", lambda _: l.config(bg="yellow"))
l.bind("2", lambda _: l.config(bg="white"))
l.pack()
root.mainloop()
Когда я запустил программу, я ожидал, что смогу изменить цвет метки l
на желтыйщелкнув по нему (который, как я думал, установил фокус на нем), затем нажав 1, и изменив его обратно на белый, нажав 2;при условии, что я не щелкнул за пределами метки и установил фокус на корневой виджет (где ключи 1 и 2 не были привязаны ни к какому обратному вызову).
Я знаю, что вы можете привязать ключи к обратным вызовам(проверил это), и я также знаю, что можно установить фокус на виджеты, которые не являются записями (это тоже проверено), но, похоже, это не работает.
Кто-нибудь может мне помочь?