我想在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()
那我该怎么做?
答案 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()