我有一个条目在一个框架内。我想通过该条目传递一个事件。
以下是有效的代码,但是在框架中不包含条目:
import tkinter as tk
myUi= tk.Tk()
myFrame = tk.Frame(myUi)
myFrame.pack()
def printMe(event):
value = event.widget.get()
print(value)
myEntry = tk.Entry(myUi,name='entry')
myEntry.bindtags(('.entry','Entry'))
myEntry.bind("<KeyRelease>", printMe)
myEntry.pack()
myUi.mainloop()
这是无效的代码:
import tkinter as tk
myUi= tk.Tk()
myFrame = tk.Frame(myUi)
myFrame.pack()
def printMe(event):
value = event.widget.get()
print(value)
myEntry = tk.Entry(myFrame,name='entry')
myEntry.bindtags(('.entry','Entry'))
myEntry.bind("<KeyRelease>", printMe)
myEntry.pack()
myUi.mainloop()
答案 0 :(得分:1)
当您将条目放置在框架中时,其绑定标签将包含其自己的名称以及由句号分隔的祖先的名称。在这种特定情况下,该条目的绑定标签为.!frame.myentry
。您可以通过在更改默认绑定标签(例如:print(str(myEntry))
)之前打印出默认绑定标签来查看此信息
由于您将条目的绑定标签更改为('.entry', 'Entry')
,因此窗口小部件本身(即:在绑定标签.!frame.entry
上)的任何绑定都不会与窗口小部件关联。