获取TkInter以显示用户输入?

时间:2014-03-21 22:16:26

标签: python user-interface tkinter

我对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。有关如何做到这一点的任何想法?感谢。

1 个答案:

答案 0 :(得分:2)

在顶部(导入下方),将name定义为StringVar

name = StringVar()

在函数callback中,将内容更改为:

def callback():
    name.set(e.get())

最后,将您的Label小部件更改为:

Label(master, textvariable=name)

所以我所做的就是创建一个特殊的对象,当我们改变它的值时,对它的所有引用的值也会改变。然后我们可以设置我们的函数来更改值以全局更新它 - 我们通过将此变量作为文本属性放在Label中来完成。

注意:我还将父参数添加到Label。没有它,它根本就不会出现。