2014-04-17 4 views
1

엔트리 필드의 텍스트 변경 사항을 반영하도록 자동으로 업데이트되는 Tkinter 레이블을 만드는 방법이 있습니까? 예를 들어 항목의 텍스트가 "1"이면 레이블에 "T1"이 표시되어야하지만 사용자가 항목의 텍스트를 "x"로 변경하면 단추를 누를 필요없이 레이블에 "Tx"가 표시되어야합니다.엔트리 값을 기준으로 Tkinter 레이블을 연결하십시오.

+0

를? 나는 그렇게 생각하지 않는다. –

+0

@AlexThornton : 올바르지 않습니다. 이것은 Tkinter에서하기 쉽습니다. –

+0

@BryanOakley 젠장, 나는'StringVar'에 대해 생각하고 있었지만'trace '에 대해서는 몰랐다. –

답변

2

예, 가능합니다. 내가 생각할 수있는 가장 쉬운 방법은 StringVar() 값이 변경되면 함수를 호출하는 StringVar.trace 메서드를 사용하는 것입니다. 다음은 예입니다 :

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() 

trace에 대한 자세한 : 버튼을 누를 필요없이 http://effbot.org/tkinterbook/variable.htm

관련 문제