我试图使用tkinter
制作一个Python GUI,我需要一个菜单项来打开主窗口的另一个副本。我试着做下面的代码,当我运行这个程序时,它冻结了一段时间,然后打开了大量的窗口。最后一条消息打印在下面。在
我有两个问题。在
TheThing
类的新窗口和实例的任务?(在IDLE中,File > New File
具有我正在寻找的行为。)为什么会发生这种错误?在
RecursionError: maximum recursion depth exceeded while calling a Python object
我的代码:
^{pr2}$我已经找到答案的地方:
This question似乎有一个非常相似的问题。我也许可以研究这个问题并找到解决办法,但我还是不明白这个问题。
This question是关于递归、python和tkinter的,但似乎更多地是关于after
的事情。
问题在于:
在这里,执行
^{pr2}$doathing
回调,然后尝试将其结果(即None
)绑定到命令。在这种特定情况下,这也会导致无限递归,因为回调将创建一个新的框架实例,该实例将再次执行回调,从而创建另一个框架,依此类推。与其调用函数,还必须将函数本身绑定到命令。在如果需要将参数传递给该函数(这里不是这种情况),可以使用
lambda
:另外,不需要创建另一个} 实例,即
Tk
实例,您应该在回调中创建一个^{相关问题 更多 >
编程相关推荐