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

时间:2015-12-02 15:24:36

标签: python-2.7 tkinter

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

答案 0 :(得分:1)

由于此类行为,您无法创建多个Tk的实例。如果需要新窗口,请创建Toplevel的实例。