Tkinter 打开顶级窗口时隐藏根窗口,并在顶级被破坏时使其重新出现
如何在第二个窗口打开时隐藏主窗口,然后在第二个窗口关闭时重新显示主窗口 我理解draw()和deiconify()的用法,但不知道如何在这种情况下应用它们 这样做的原因是最终创建一个程序,主窗口充当菜单,当其他窗口打开时隐藏,当其他窗口退出时重新出现Tkinter 打开顶级窗口时隐藏根窗口,并在顶级被破坏时使其重新出现,tkinter,Tkinter,如何在第二个窗口打开时隐藏主窗口,然后在第二个窗口关闭时重新显示主窗口 我理解draw()和deiconify()的用法,但不知道如何在这种情况下应用它们 这样做的原因是最终创建一个程序,主窗口充当菜单,当其他窗口打开时隐藏,当其他窗口退出时重新出现 from tkinter import * class Main(): def __init__(self, master): self.master = master self.title = "Mai
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()
任何帮助都将不胜感激。您可以在第二个窗口的
上放置一个绑定,该窗口将调用一个函数,该函数将调用主窗口上的去确认
如果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()
。。。
def打开(自):
第二个窗口=第二个(self.master)
...
二等(顶级):
定义初始(自我,主):
顶层。初始化(自,主)
self.master=master
self.master.draw()
self.bind(“,self.on_destroy)
def on_销毁(自身、事件):
如果event.widget==self:
self.master.deiconify()
您可以在第二个窗口的
上放置一个绑定,该窗口将调用一个函数,该函数将调用主窗口上的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()
。。。
def打开(自):
第二个窗口=第二个(self.master)
...
二等(顶级):
定义初始(自我,主):
顶层。初始化(自,主)
self.master=master
self.master.draw()
self.bind(“,self.on_destroy)
def on_销毁(自身、事件):
如果event.widget==self:
self.master.deiconify()