如何在tkinter中关闭子窗口?

时间:2018-08-15 08:01:53

标签: python tkinter

我只是在学习如何在tkinter中编写简单的GUI应用程序,当我要关闭child1作为child2函数的第一步时,我陷入了困境。

我要实现的是单击“下一个按钮”,关闭上一个窗口并显示新窗口。这是我的python3代码的示例。在Internet上的TopLevel上浏览的信息,但是没有任何运气。

对不起,我很愚蠢,但是没有人要问:(

from tkinter import *

class TestApp:
    def __init__(self, master):
        self.master = master
        master.minsize(width=800, height=640)

        self.button = Button(master, text='Next', command=self.firstWindow)
        self.button.pack()

    def firstWindow(self):
        self.master.withdraw()
        newWindow = Toplevel(self.master)
        newWindow.minsize(width=800, height=640)

        self.button = Button(newWindow, text='Next', command=self.secondWindow)
        self.button.pack()

    def secondWindow(self):
        CODE TO CLOSE FIRST CHILD HERE
        second_newWindow = Toplevel(REFERENCE TO FIRST CHILD HERE?)
        second_newWindow.minsize(width=800, height=640)

        self.button = Button(second_newWindow, text='Quit', command=self.master.quit())
        self.button.pack()

3 个答案:

答案 0 :(得分:0)

您可以使用self.newWindow.destroy()关闭第一个窗口。

答案 1 :(得分:0)

参考Nazar Khan的答案,您需要将其声明为自我的对象: self.newWindow = Toplevel(self.master) 然后,您可以使用self.newWindow.destroy()将其关闭。

答案 2 :(得分:0)

感谢作者,我发现了一个错误:

为newWindow命名应命名为

  

自己。

的功能。

from tkinter import *

class TestApp:
    def __init__(self, master):
        self.master = master
        master.minsize(width=800, height=640)

        self.button = Button(master, text='Next', command=self.firstWindow)
        self.button.pack()

    def firstWindow(self):
        self.master.withdraw()
        self.newfirstWindow = Toplevel(self.master)
        self.newfirstWindow.minsize(width=800, height=640)

        self.button = Button(self.newfirstWindow, text='Next', command=self.secondWindow)
        self.button.pack()

    def secondWindow(self):
        self.newfirstWindow.destroy()
        self.newsecondWindow = Toplevel(self.master)
        self.newsecondWindow.minsize(width=800, height=640)

        self.button = Button(self.newsecondWindow, text='Quit', command=self.master.quit())
        self.button.pack()





if __name__ == "__main__":
    master = Tk()
    App = TestApp(master)
    master.mainloop()