【发布时间】:2016-02-16 14:04:07
【问题描述】:
我使用 GUI 模块 tkinter 在 python 3.4 中创建了一个程序。我想调整代码,以便在调用新窗口时关闭当前窗口然后打开新窗口。目前,当前窗口只是放置在新窗口的后面而不是销毁它。我曾尝试使用.destroy(),但这会阻止另一个窗口打开。我有我的程序,它执行下面的当前窗口切换。
def help1(self):
root2=Toplevel(self.master)
HelpWindow= HelpScreen.Help(root2)
我知道这个问题很常见,但我在这里找不到适用于我的代码的解决方案。
【问题讨论】:
-
不要关闭,禁用它!为什么 ?什么是子窗口关闭类型?
grab_set / grab_release或withdraw / deiconify,您需要处理关闭方法,因为Ex: if sub_window closed by system。需要在主应用程序中添加状态检查器if csub_window is exist -
一个应用应该有一个主 Tk() 窗口。当它被摧毁时,游戏结束(如你所见)。对于您想要的,使用withdraw 隐藏主要并创建和销毁Toplevels。或者:创建和销毁放在主窗口中的框架。或者:将多个框架相互叠加,然后 .lift() 将您希望显示的那个。
-
以前有人问过这样的问题。你可以试着搜索一下。
标签: python user-interface python-3.x tkinter tk