我的问题是,我无法让Entry字段显示任何内容。
我一直在使用Tk for Python和Ruby工作几年,为我的团队制作工具。我正在开发的当前工具需要一些带有Entry小部件字段的弹出窗口。我在许多以前的应用程序中使用了带有textvariable属性的Entry字段,但在这种情况下,我使用Class定义来创建通用窗口实例。我正在使用StringVar来提供用于保存和管理Entry字段中的值的对象,但无论我将StringVar的值设置为该字段都不会更新。在初始化时将Entry设置为text =“something”也不会在Entry字段中显示任何内容。
这是一个展示我问题的简化示例脚本。
import Tkinter
from Tkinter import *
window_list = []
class popup_window:
def __init__(self):
self.popup = Tk()
Entry(self.popup, textvariable=entry_value, width=60, bg="blue", foreground="cyan").grid(row=1, column=1)
def spawner():
window_list.append(popup_window())
main_window = Tk()
entry_value = StringVar()
entry_value.set("test")
spawn_window = Button(main_window, text='spawn', command=spawner).grid(row=1, column=1)
main_window.mainloop()
运行此脚本时,Entry字段不显示“test”。
答案 0 :(得分:1)
由于此类行为,您无法创建多个Tk
的实例。如果需要新窗口,请创建Toplevel
的实例。