Tkinter Entry小部件之后的事件回调 [英] Event callback after a Tkinter Entry widget

查看:290
本文介绍了Tkinter Entry小部件之后的事件回调的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从这里的第一个答案开始:
StackOverflow#6548837
用户键入时,我可以调用回调:

From the first answer here: StackOverflow #6548837 I can call callback when the user is typing:

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() 

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

However, the event occurs on every typed character. How to call the event when the user is done with typing and presses enter, or the Entry widget loses focus (i.e. the user clicks somewhere else)?

推荐答案

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

I think this does what you're looking for. I found relevant information here. The bind method is the key.

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() 

这篇关于Tkinter Entry小部件之后的事件回调的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆