首页 文章

tkinter条目小部件textvariable不会使用.set方法更新

提问于
浏览
0

我的问题是,我无法让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 回答

  • 1

    您不能创建多个 Tk 的实例,因为这种行为正是如此 . 如果需要新窗口,请创建 Toplevel 的实例 .

相关问题