对输入给出的输入执行任务并不断更新标签

时间:2016-11-10 08:40:46

标签: python-2.7 tkinter

所以我对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。标签应该更新,直到我关闭程序。

感谢您在解决此问题时遇到了很多麻烦

1 个答案:

答案 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)