为什么Tkinter没有获得我改变的价值?

时间:2016-04-01 21:11:43

标签: python tkinter

经过多次研究后,我无法获得修改后的用户输入我的Tinter Entry

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

当我启动程序时,当我修改条目的文本时,当我点击验证时,文本值没有改变,为什么? 即使我更改了条目的标签,当我点击验证时,它也会打印我"默认文字"

1 个答案:

答案 0 :(得分:3)

您几乎立即将新值重新分配给value引用。首先,您执行value = StringVar(),然后在几行之后执行value = value.get()。那时,value不再是StringVar;它只是一个字符串。删除第二个分配,并使用Button更改行以检索值本身:

bouton1 = Button(fenetre, text="Validate", command=lambda: mail(value.get()))