我的问题是,我无法让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” .
1 回答
您不能创建多个
Tk
的实例,因为这种行为正是如此 . 如果需要新窗口,请创建Toplevel
的实例 .