【发布时间】:2016-06-10 07:48:32
【问题描述】:
我正在尝试使用 Tkinter 的 Entry 小部件。我无法让它做一些非常基本的事情:返回输入的值。
有谁知道为什么这么简单的脚本不会返回任何东西?我尝试了很多组合,并研究了不同的想法。
此脚本运行但不打印条目:
from Tkinter import *
root = Tk()
E1 = Entry(root)
E1.pack()
entry = E1.get()
root.mainloop()
print "Entered text:", entry
看起来很简单。
编辑: 万一其他人遇到这个问题并且不理解,这就是最终为我工作的方法。我在输入窗口中添加了一个按钮。按钮的命令关闭窗口并执行 get() 函数:
from Tkinter import *
def close_window():
global entry
entry = E.get()
root.destroy()
root = Tk()
E = tk.Entry(root)
E.pack(anchor = CENTER)
B = Button(root, text = "OK", command = close_window)
B.pack(anchor = S)
root.mainloop()
然后返回所需的值。
【问题讨论】:
-
get()在输入任何文本之前被调用。所以entry是一个空字符串(在最后一行将entry更改为repr(entry),你会看到)。如果你想在输入一些文本时调用get()(你可能会这样做),你需要将get()绑定到一个事件。 -
而
print不会发生,因为它前面有一个无限循环(root.mainloop())。
标签: python tkinter tkinter-entry