首页 > 解决方案 > 无法删除 tkinter 根窗口

问题描述

编辑:我意识到这个问题模棱两可并且被错误地提出,所以我试图简化。

由于没有正确破坏窗口,我在尝试使用 tkinter 应用程序执行多个 ploop 时遇到了麻烦。我的修复(我很确定这是不正确的)是创建一个整数循环,并将我的类嵌套在其中:

for i in range(1, 1000):

if i >= 2:
    root.destroy()

class App(tkinter.Frame): *app code here*

退出应用程序:

def OnButtonClick2(self):

        i = -1
        app.destroy()
        root.destroy()
        sys.exit()

否则:

i+=1

出于某种原因,如果我在第一次迭代后指示应用程序销毁,它会留下一个空白的根窗口,然后在再次创建应用程序时,按钮将无法点击并嵌套在不同的窗口中。这解决了问题,但我知道这不是正确的解决方案。

标签: pythonloopsclasstkinter

解决方案


要么将您希望重复的逻辑安排为类方法,要么将所有内容放在 if__name__ == '__main__'函数中。无论是方法还是函数,都在循环中调用。


推荐阅读