【发布时间】:2020-03-05 18:45:51
【问题描述】:
我在另一个类中创建了一个 TopLevel 类的实例,但不能“withdraw()”子窗口 来自父母的电话。
import tkinter as tk
class Table(tk.Toplevel):
def __init__(self, master):
tk.Toplevel.__init__(self,master)
self.var_new_t=tk.Toplevel(self.master)
self.t2=Table_2(self.var_new_t)
#Goal is to create a child window and immediately hide it.
self.t2.hide_me()
#self.t2.withdraw() ##Tried a few differnt ways
class Table_2(tk.Toplevel):
def __init__(self, master):
tk.Toplevel.__init__(self,master)
self.master = master
label = tk.Label(self.master, bg='green', text='Second Table')
label.grid()
def hide_me(self):
self.master.withdraw()
root = tk.Tk()
n= Table(root)
tk.Button(root, text="Quit", command=root.destroy).pack()
root.mainloop()
我尝试了一些其他变体,但无济于事。
【问题讨论】:
-
更改为
self.withdraw()并且此self.var_new_t=tk.Toplevel(self.master)不是必需的,双重工作。这个self.t2=Table_2(self.var_new_t)也必须是self.t2=Table_2(self)或self.t2=Table_2(master)
标签: python class tkinter nested toplevel