Tkinter 入口小部件执行 [英] Tkinter entry widget execution

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

问题描述

所以我做了一个简单的程序但是它似乎不起作用我的代码是:

So I made a simple program however it doesn't seem to work my code is:

e = Entry(root, font = 20,borderwidth=5)

e.grid(row=1)


def capture(event):
    print(e.get())
     
e.bind("<Key>", capture)

然而,当我第一次在框中输入内容时,我得到的只是一个空字符串.

However the first time I enter something in the box, all I get is an empty string.

推荐答案

正如@Art 所说:

您可以使用 "", e.bind("", lambda event: e.after(1, capture, event))" 或简单地使用 StringVar()

You can use "<KeyRelease>", e.bind("<Key>", lambda event: e.after(1, capture, event))" or simply Use StringVar()

from tkinter import *
root=Tk()
e = Entry(root, font = 20,borderwidth=5)
e.grid(row=1)
def capture(event):
    print(e.get())
e.bind("<Key>", lambda event: e.after(1, capture, event))
root.mainloop()

或者你可以使用 StringVar()

from tkinter import *
root=Tk()
s=StringVar()
e = Entry(root,textvariable=s, font = 20,borderwidth=5)
e.grid(row=1)
def capture(*args):
    print(s.get())
s.trace("w",capture)
root.mainloop()

这篇关于Tkinter 入口小部件执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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