一个没有类的简单示例:
from tkinter import *
master = Tk()
# Create this method before you create the entry
def return_entry(en):
"""Gets and prints the content of the entry"""
content = entry.get()
print(content)
Label(master, text="Input: ").grid(row=0, sticky=W)
entry = Entry(master)
entry.grid(row=0, column=1)
# Connect the entry with the return button
entry.bind('<Return>', return_entry)
mainloop()
以上是该问题的答案:Why is Tkinter Entry's get function returning nothing?
所以我检查了代码,它起作用了。但是-我不明白为什么在“ return_entry”括号中有一个“ en”。在代码的任何其他部分中都没有提到它,所以我认为它是语法-但是出于什么目的?
如果我没有看到OP的帐户已经停用了2年,我会在上述回答中留下评论
答案 0 :(得分:1)
通过bind绑定到小部件的回调函数将事件对象作为参数。
我修改了您的打印声明,如下所示:
print("Event Object: ", en.widget, en, "\nResult: ", content)
在创建的窗口中输入“ Test {Return}”后,将产生以下内容:
Event Object: .!entry <KeyPress event keysym=Return keycode=13 char='\r' x=52 y=8>
Result: Test
事件对象可用于确定所需的处理。在您的情况下,它无关紧要,但是回调机制是必需的。 该事件发生在。!entry小部件中,它是一个KeyPress事件,显示了其他特征。
HTH