2014-04-17 44 views
1

有没有办法使Tkinter标签自动更新以反映输入字段文本中的更改?例如,如果条目具有文本“1”,则标签应该说“T1”,但是如果用户将条目中的文本更改为“x”,则标签应该说“Tx”,而不必按下按钮。基于条目值链接Tkinter标签

+0

无需按一个按钮?我不这么认为。 –

+0

@AlexThornton:不正确。这在Tkinter很容易做到。 –

+0

@BryanOakley该死的,我在想'StringVar',但我不知道'trace'。 –

回答

2

是的,这是可能的。我能想到的最简单的方法是使用StringVar.trace方法,如果StringVar()的值发生变化,该方法将调用函数。这里有一个例子:

def change_label(*args): 
    label.config(text='') # clear label 
    label.config(text='T' + var.get()) # set new label text 

root = Tk() 

var = StringVar() # make the StringVar() 

label = Label(root) 
entry = Entry(root, textvariable=var) # set the textvariable to var 

var.trace('w', change_label) # trace var to monitor for changes, calling function on change 

label.pack() 
entry.pack() 

root.mainloop() 

更多tracehttp://effbot.org/tkinterbook/variable.htm