所以我用Python编写程序,而用户界面我使用Tkinter,应用程序似乎运行正常,但是当我在其中导航一段时间后,我得到了以下TclError:
TclError: No more menus can be allocated.
我做了一些研究,我发现这些"菜单有一个限制"在Windows上,但我的问题是,我怎么知道这些菜单正在创建?当我停止使用它们时如何删除它们?我使用删除顶级菜单的方法为" top.destroy()"。但即使我生成越来越多的菜单,它会溢出windows堆或其它任何东西。
以下是我的程序的源代码: https://github.com/molBR/upgestao 有人可以帮忙吗? 提前谢谢。
答案 0 :(得分:0)
创建自动隐藏菜单时出现同样的错误。起初我创建了自动生成和删除的虚拟(空)菜单栏来替换真正的菜单栏来隐藏它。因此,在几十个隐藏tkinter
之后开始向我显示此错误:TclError: No more menus can be allocated.
解决方案很简单:不要自动创建/删除菜单。
只需创建所需的所有必要菜单并将其保存在内存中即可。不要删除它们。在程序工作期间切换菜单。