从第一个答案: StackOverflow #6548837 我可以在用户输入时调用回调:
from Tkinter import *
def callback(sv):
print sv.get()
root = Tk()
sv = StringVar()
sv.trace("w", lambda name, index, mode, sv=sv: callback(sv))
e = Entry(root, textvariable=sv)
e.pack()
root.mainloop()
但是,事件发生在每个键入的角色上。如何在用户完成输入并按下回车键时调用该事件,或者Entry小部件失去焦点(即用户点击其他地方)?
答案 0 :(得分:4)
我认为这可以满足您的需求。我找到了相关信息here。 bind
方法是关键。
from Tkinter import *
def callback(sv):
print sv.get()
root = Tk()
sv = StringVar()
e = Entry(root, textvariable=sv)
e.bind('<Return>', (lambda _: callback(e)))
e.pack()
root.mainloop()
答案 1 :(得分:0)
要捕获 Return 键按下事件,标准Tkinter功能可以执行此操作。无需使用StringVar
。
def callback(event):
pass #do the work
e = Entry(root)
e.bind ("<Return">,callback)