首页 文章

获取TkInter以显示用户输入?

提问于
浏览
0

我对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 回答

  • 2

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

    name = StringVar()
    

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

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

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

    Label(master, textvariable=name)
    

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

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

相关问题