如何在第二个窗口打开时隐藏主窗口,然后在第二个窗口关闭时使主窗口重新出现?
我了解withdraw()和deiconify()的用法,但不知道如何在这种情况下应用它们。
这样做的原因是最终创建一个程序,其中主窗口充当菜单,当从其中打开其他窗口时隐藏并在退出这些其他窗口时重新出现。
from tkinter import *
class Main():
def __init__(self, master):
self.master = master
self.title = "Main Window"
self.button1 = Button(self.master, text="Click Me", command = self.Open)
self.button1.grid(row=0, column=0, sticky=W)
self.button2 = Button(self.master, text="Close", command = self.Close)
self.button2.grid(row=1, column=0, sticky=W)
def Open(self):
second_window = Toplevel(self.master)
window2 = Second(second_window)
def Close(self):
self.master.destroy()
class Second():
def __init__(self, master):
self.master = master
self.title = "Second Window"
root = Tk()
main_window = Main(root)
root.mainloop()
任何帮助将不胜感激。
您可以将绑定放在<Destroy>
第二个窗口将调用一个函数,该函数将调用deiconify
在主人身上。
如果您的代码中这会更容易Second
是一个子类Toplevel
。如果你这样做了,你可以将此代码隐藏在定义中Second
。例如:
...
def Open(self):
second_window = Second(self.master)
...
class Second(Toplevel):
def __init__(self, master):
Toplevel.__init__(self, master)
self.master = master
self.master.withdraw()
self.bind("<Destroy>", self.on_destroy)
def on_destroy(self, event):
if event.widget == self:
self.master.deiconify()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)