我正在尝试使用 Tkinter 的 Entry 小部件。我无法让它做一些非常基本的事情:返回输入的值。有谁知道为什么这么简单的脚本不会返回任何内容?我尝试了很多组合并研究了不同的想法。
该脚本运行但不打印该条目:
from Tkinter import *
root = Tk()
E1 = Entry(root)
E1.pack()
entry = E1.get()
root.mainloop()
print "Entered text:", entry
看起来很简单。
Edit
如果其他人遇到这个问题并且不理解,这就是最终对我有用的方法。我在输入窗口中添加了一个按钮。按钮的命令关闭窗口并执行 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
in entry = E1.get()
甚至在你的程序开始之前就发生了,所以很清楚entry
将指向一些空字符串。
最终的第二个问题是,无论如何,只有在主循环完成后才会打印文本,即关闭 tkinter 应用程序。
如果您想打印您的内容Entry
当你的程序运行时,你需要安排一个回调。例如,您可以听到按下按钮的声音<Return>
关键如下
import Tkinter as tk
def on_change(e):
print e.widget.get()
root = tk.Tk()
e = tk.Entry(root)
e.pack()
# Calling on_change when you press the return key
e.bind("<Return>", on_change)
root.mainloop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)