Tkinter Entry小部件后的事件回调

时间:2016-08-20 21:21:27

标签: python events tkinter callback

从第一个答案: 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小部件失去焦点(即用户点击其他地方)?

2 个答案:

答案 0 :(得分:4)

我认为这可以满足您的需求。我找到了相关信息herebind方法是关键。

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)