如何让TkInter显示用户输入?
我对TkInter和Python的图形用户界面(GUI)还比较陌生,不过我对Python本身有一些了解。我正在用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
)的输入框里输入他们的名字,我想把这个名字显示在标签控件上。有没有什么好主意可以实现这个?谢谢。
1 个回答
2
在最上面(导入的下面),定义一个叫 name
的东西,它是一个 StringVar
类型:
name = StringVar()
在 callback
这个函数里,把内容改成:
def callback():
name.set(e.get())
最后,把你的 Label
组件改成:
Label(master, textvariable=name)
我做的事情是创建了一个特殊的对象,当我们改变它的值时,所有引用它的地方的值也会跟着改变。这样我们就可以设置一个函数来改变这个值,从而在全局范围内更新它。最后,我们利用这个特性,把这个变量作为 Label
的文本属性。
注意:我还给你的 Label
加了一个父级参数。如果没有这个参数,它根本不会显示出来。