我正在尝试将变量与Tkinter条目小部件相关联,其方式为:
每当我更改条目的值(“内容”)时,主要是通过在其中键入内容,变量会自动分配给我输入的值。没有我必须首先按下“更新值”或类似的按钮。
每当变量(通过程序的其他部分)发生变化时,我希望自动调整显示的条目值。我相信这可以通过textvariable工作。
我在http://effbot.org/tkinterbook/entry.htm上阅读了这个例子,但它并没有完全帮助我实现我的想法。我觉得有一种方法可以确保使用条目“验证”的第一个条件。有什么想法吗?
答案 0 :(得分:12)
我想你想要这样的东西。在下面的示例中,我创建了一个变量myvar
,并将其分配为textvariable
和Label
小部件的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()