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

时间:2010-03-26 14:38:27

标签: python validation variables tkinter tkinter-entry

我正在尝试将变量与Tkinter条目小部件相关联,其方式为:

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

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

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

1 个答案:

答案 0 :(得分:12)

我想你想要这样的东西。在下面的示例中,我创建了一个变量myvar,并将其分配为textvariableLabel小部件的Entry。这样两者都是耦合的,Entry小部件中的更改将自动反映在Label中。

您还可以set trace对变量进行操作,例如写信给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()