Tkinter Entry小部件后的事件回调

ale*_*s80 0 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() 
Run Code Online (Sandbox Code Playgroud)

但是,该事件发生在每个键入的字符上。当用户完成键入并按下Enter键或Entry小部件失去焦点(即用户单击其他位置)时,如何调用事件?

qfw*_*wfq 5

我认为这可以满足您的需求。我在这里找到了相关信息。该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() 
Run Code Online (Sandbox Code Playgroud)