如何将变量连接到 Entry 小部件?
-
22-09-2019 - |
题
我正在尝试将变量与 Tkinter 条目小部件关联起来,方式如下:
每当我更改条目的值(“内容”)时,主要是通过在其中键入内容,该变量会自动分配我键入的值。我不必先按下“更新值”按钮或类似的按钮。
每当变量发生更改(由程序的其他部分更改)时,我希望显示的条目值自动调整。我相信这可以通过文本变量来实现。
我读过这个例子 http://effbot.org/tkinterbook/entry.htm, ,但这并不能完全帮助我实现我的想法。我有一种感觉,有一种方法可以通过使用条目的“验证”来确保第一个条件。有任何想法吗?
解决方案
我想你想要这样的东西。在下面的示例中,我创建了一个变量 myvar
并将其指定为 textvariable
两者的一个 Label
和 Entry
小部件。通过这种方式,两者是耦合的,Entry 小部件中的更改将自动反映在 Label 中。
你也可以 设置跟踪 关于变量,例如写入标准输出。
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()
不隶属于 StackOverflow