1
有沒有辦法使Tkinter標籤自動更新以反映輸入字段文本中的更改?例如,如果條目具有文本「1」,則標籤應該說「T1」,但是如果用戶將條目中的文本更改爲「x」,則標籤應該說「Tx」,而不必按下按鈕。基於條目值鏈接Tkinter標籤
有沒有辦法使Tkinter標籤自動更新以反映輸入字段文本中的更改?例如,如果條目具有文本「1」,則標籤應該說「T1」,但是如果用戶將條目中的文本更改爲「x」,則標籤應該說「Tx」,而不必按下按鈕。基於條目值鏈接Tkinter標籤
是的,這是可能的。我能想到的最簡單的方法是使用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()
無需按一個按鈕?我不這麼認爲。 –
@AlexThornton:不正確。這在Tkinter很容易做到。 –
@BryanOakley該死的,我在想'StringVar',但我不知道'trace'。 –