我已经建立了一个面向对象的tkinter程序。我已经初始化了一个变量来存储Toplevel()
self.toplevel = None
然后,当我创建实际的Toplevel
窗口时,我只需将其赋给变量:
self.toplevel = Toplevel()
问题是......当Toplevel()
窗口关闭时,该值仍然保留在变量self.toplevel
中。如何在关闭窗口后将变量重置为None,以便执行检查:
if (self.toplevel == None):
self.toplevel = Toplevel()
或者是否有其他方法可以防止打开多个Toplevel
窗口?
3条答案
按热度按时间puruo6ea1#
检查此How do I handle the window close event in Tkinter?
在
Toplevel
关闭后,使用回调函数TopCloses
将值None
赋值给self.toplevel
。为此,在GUI类中编写一个方法以访问toplevel
属性,并在回调函数中将其值设置为None
。在你的主程序里,
vcirk6k62#
下面是我的解决方案:
yquaqz183#
这些都是过于复杂的解决方案海事组织。
我只是这样使用win32gui:
简单、方便,让您可以灵活地关闭、移动、聚焦等。