2016-04-01 2 views
-1

После кратных исследований я не могу успех, чтобы получить измененный пользовательский ввод моей Tinter записиПочему Tkinter не получит мое измененное значение?

def mail(value): 
    print(value)  

value = StringVar() 
value.set("Default text") 
entree = Entry(fenetre, textvariable=value, validate="key", width=30) 
entree.pack() 
value = value.get() 
bouton1=Button(fenetre, text="Validate", command=lambda: mail(value)) 
bouton1.pack() 

Когда я запускаю свою программу, и когда я изменить текст записи, и когда я нажмите на проверке, текстовое значение не изменилось, почему? Даже если я изменяю метку записи, когда я нажимаю на подтверждение, она всегда меняет текст «Текст по умолчанию»

ответ

3

Вы почти сразу переназначаете новое значение в ссылку value. Сначала вы делаете value = StringVar(), а затем несколько строк позже вы делаете value = value.get(). В этот момент value больше не является StringVar; это просто строка. Удалите это второе назначение и измените линию на Button для извлечения самого значения:

bouton1 = Button(fenetre, text="Validate", command=lambda: mail(value.get())) 
Смежные вопросы