所以我对tkinter有点新意并且正在制作一个gui。我遇到的一个问题是,当我从条目小部件中获取值时。在我对它进行了一些算术之后,我无法获得与该条目小部件相关联的标签。例如
var = tk.StringVar
entry1 = tk.Entry(root, textvariable = var)
entry1.pack()
then do something with var
label1 = tk.Label(root, text = var)
label1.pack()
在问这个之前我环顾四周,我发现的是连接变量。我试过了,但第一次之后它仍然不会更新。
每次在条目中输入新值时,如何更新标签。如果输入2就会显示4。然后,如果我输入5,那么标签应该自动更新,10应该被显示。在这种情况下,我只是乘以2。标签应该更新,直到我关闭程序。
感谢您在解决此问题时遇到了很多麻烦
答案 0 :(得分:0)
def enter_hit(event):
do_something_with(var.get())
var = tk.StringVar
entry1 = tk.Entry(root, textvariable = var)
entry1.pack()
label1 = tk.Label(root, text = var)
label1.pack()
entry1.bind("<Return>",enter_hit)
当您点击entry1
上的Enter时,它会调用enter_hit。然后可以获取var
和它的文字,你可以用它做你想做的事情来影响label1
。
如果这不适合您,并且您希望它改变输入字符的时刻,那么请尝试跟踪。
def traced_event(event):
do_something_with(var.get())
var = tk.StringVar
entry1 = tk.Entry(root, textvariable = var)
entry1.pack()
label1 = tk.Label(root, text = var)
label1.pack()
var.trace("w", traced_event)