2014-04-17 70 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