我对python中的TkInter和GUI相当新(但我一般都有使用python的经验)。我正在使用TkInter中的GUI,并希望让用户输入他们的名字,并在他们点击按钮时让TkInter显示名称。到目前为止,这是我的代码:
from Tkinter import *
master = Tk()
e = Entry(master)
e.pack()
e.focus_set()
def callback():
print e.get()
b = Button(master, text="get", width=10, command=callback)
b.pack()
separator = Frame(height=2, bd=1, relief=SUNKEN)
separator.pack(fill=X, padx=5, pady=5)
Label(text=callback).pack()
mainloop()
用户将在Entry
(或e
)中输入他们的名字,我想在标签小部件中显示e
。有关如何做到这一点的任何想法?感谢。
答案 0 :(得分:2)
在顶部(导入下方),将name
定义为StringVar
:
name = StringVar()
在函数callback
中,将内容更改为:
def callback():
name.set(e.get())
最后,将您的Label
小部件更改为:
Label(master, textvariable=name)
所以我所做的就是创建一个特殊的对象,当我们改变它的值时,对它的所有引用的值也会改变。然后我们可以设置我们的函数来更改值以全局更新它 - 我们通过将此变量作为文本属性放在Label
中来完成。
注意:我还将父参数添加到Label
。没有它,它根本就不会出现。