【问题标题】:How do you bring back a main window?你如何带回一个主窗口?
【发布时间】:2014-05-14 09:47:04
【问题描述】:

使用类,我创建了一个带有按钮的窗口,该按钮隐藏窗口并创建一个新窗口。我的问题是如何在新窗口中创建一个按钮,该按钮会自行销毁并带回主窗口?

from tkinter import *

class Demo1:
    def __init__(self, master):
        self.master = master
        self.button1 = Button(self.master, text = 'New Window', width = 25, command = self.new_window)
        self.button1.pack()
    def new_window(self):
        self.master.withdraw() #Hides main window
        self.newWindow = Toplevel()
        app = Demo2(self.newWindow)

class Demo2:
    def __init__(self, master):
        self.master = master
        self.quitButton = Button(self.master, text = 'Quit', width = 25, command = self.close_windows)
        self.quitButton.pack()
    def close_windows(self):
        #What do I put here to bring back the main window?
        self.master.destroy()

def main(): 
    root = Tk()
    app = Demo1(root)
    root.mainloop()

main()

【问题讨论】:

    标签: python class tkinter


    【解决方案1】:

    你要找的是deiconify

    from tkinter import *
    
    class Demo1:
        def __init__(self, master):
            self.master = master
            self.button1 = Button(self.master, text = 'New Window', width = 25, command = self.new_window)
            self.button1.pack()
    
        def new_window(self):
            self.master.withdraw() #Hides main window
            self.newWindow = Toplevel()
            app = Demo2(self.newWindow,self.master)
    
    class Demo2:
        def __init__(self, master,oldmaster):
            self.master = master
            self.quitButton = Button(self.master, text = 'Quit', width = 25, command = lambda:self.close_windows(oldmaster))
            self.quitButton.pack()
    
        def close_windows(self,oldmaster):
            #What do I put here to bring back the main window?
            oldmaster.deiconify()
            self.master.destroy()
    
    def main(): 
        root = Tk()
        app = Demo1(root)
        root.mainloop()
    
    main()
    

    【讨论】:

    • 嗨@user3500082,如果这个或任何答案已经解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多