ttk.Entry未根据textvariable设置默认值

时间:2018-07-26 10:45:30

标签: python tkinter ttk

我已经用tkinter和ttk创建了以下窗口,但是我只是不能强制ttk.Entry字段遵循textvariable作为其默认值,它们只是一直显示为空白。奇怪的是,有时当我实际上使异常发生在窗口的其他地方时,它们突然起作用了。

class PopUpEdit:
    def __init__(self, idx):
        self.idx = idx
        self.data = get_single(self.idx)

        self.have = tk.StringVar(root)
        self.site = tk.StringVar(root)
        self.title = tk.StringVar(root)
        self.tags = tk.StringVar(root)

        self._setup_vars()
        self._setup_window()

    def _setup_window(self):
        window = tk.Toplevel(root)
        window.geometry('400x600')
        pprint.pprint(self.data)
        ttk.Label(window, text='Site').grid(row=2, column=1, pady=10, padx=10)
        ttk.Entry(window, textvariable=self.site, width=40).grid(row=2, column=2, sticky='e', pady=10, padx=10)
        ttk.Label(window, text='Title').grid(row=3, column=1, pady=10, padx=10)
        ttk.Entry(window, textvariable=self.title, width=40).grid(row=3, column=2, sticky='e', pady=10, padx=10)
        ttk.Label(window, text=self.data['id']).grid(row=4, column=1, pady=10, padx=10)

    def _setup_vars(self):
        self.title.set(self.data['title'])
        self.site.set(self.data['site'])
        self.tags.set(self.data['tags'])

0 个答案:

没有答案