接受来自Tkinter的输入

时间:2011-08-08 16:12:13

标签: python user-interface tkinter

我想在Tkinter中编写一个GUI,它接受来自用户的文本输入并将其存储在变量Text中;我也希望以后能够使用这个变量......这是我试过的失败的原因:

from Tkinter import *


def recieve():
    text = E1.get()
    return text

top = Tk()
L1 = Label(top, text="User Name")
L1.pack(side=LEFT)
E1 = Entry(top, bd=5)

E1.pack(side=RIGHT)

b = Button(top, text="get", width=10, command=recieve)
b.pack()

print text

top.mainloop()

那我该怎么做?

1 个答案:

答案 0 :(得分:0)

问题在于:

print text    
top.mainloop()

在调用top.mainloop()之前,尚未定义text。只有在调用top.mainloop后,用户才会看到GUI界面,并且主循环可能会循环很多次,然后用户才能在Entry框中输入并按下Button 。只有在按下按钮后才会调用recieve(sic),虽然它返回一个值,但在recieve结束后该值不存储在任何位置。如果您要打印text,则必须在recieve函数中执行此操作:

from Tkinter import *

def receive():
    text = E1.get()
    print(text)
top = Tk()
L1 = Label(top, text="User Name")
L1.pack( side = LEFT)
E1 = Entry(top, bd =5)
E1.pack(side = RIGHT)
b = Button(top, text="get", width=10, command=receive)
b.pack()
top.mainloop()