如何将变量连接到Entry小部件?

San*_*o98 8 python variables validation tkinter tkinter-entry

我试图将变量与Tkinter条目小部件相关联,其方式如下:

  1. 每当我更改条目的值("内容")时,主要是通过在其中键入内容,变量会自动分配给我输入的值.没有我必须按下"更新值"按钮或类似的东西.

  2. 每当变量(通过程序的其他部分)发生变化时,我希望自动调整显示的条目值.我相信这可以通过textvariable工作.

我在http://effbot.org/tkinterbook/entry.htm上阅读了这个例子,但它并没有完全帮助我实现我的想法.我觉得有一种方法可以确保使用条目"验证"的第一个条件.有任何想法吗?

Anu*_*yal 13

我想你想要这样的东西.在下面的示例中,我创建了一个变量myvar并将其指定为textvariablea LabelEntry小部件.这两种方式都是耦合的,Entry小部件中的更改将自动反映在Label中.

您还可以设置跟踪变量,例如写入stdout.

from tkinter import *


root = Tk()
root.title("MyApp")

myvar = StringVar()

def mywarWritten(*args):
    print "mywarWritten",myvar.get()

myvar.trace("w", mywarWritten)

label = Label(root, textvariable=myvar)
label.pack()

text_entry = Entry(root, textvariable=myvar)
text_entry.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)