【发布时间】:2014-09-28 15:33:12
【问题描述】:
我正在 tkinter 中编写一个多窗口 GUI 程序。下面显示的代码是我的代码主要部分的布局。第一个窗口工作正常,但是当我通过调用self.next_win 到达第二个窗口时,有些事情开始变得非常有趣。
主要问题是当我要销毁 GUI 时:我希望每个窗口中都有一个退出按钮,按下该按钮会关闭整个 GUI (root.destroy)。从第一个窗口这很好,我调用self.quit 方法;但是当我到达第二个窗口时它不起作用。我知道这是因为第二个窗口中的master 是一个Toplevel 小部件,但我不知道如何解决这个问题。我不知道如何从第二个窗口调用root.destroy。
我该如何解决这个问题? SecondWin.quit 方法中的一行,或者更好的代码结构使解决方案变得微不足道(请记住,我是初学者,所以必须解释琐事)?谢谢。
class FirstWin:
def __init__(self, master):
self.master = master
...
...
def next_win(self):
self.master.withdraw()
root2 = Toplevel()
SecondWin(root2)
def quit(self):
self.master.destroy()
class SecondWin:
def __init__(self, master):
self.master = master
...
...
def quit(self):
self.master.destroy() # What goes in here?
...
def main():
root = Tk()
GUI = FirstWin(root)
root.mainloop()
if __name__ == '__main__':
main()
【问题讨论】:
标签: python oop user-interface tkinter