我只是在学习如何在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()
答案 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()