在本地作用域中创建的wxPython无模式帧何时实际被销毁?

在本地作用域中创建的wxPython无模式帧何时实际被销毁?,wxpython,Wxpython,我有一个wxPython应用程序,其中我将主框架上的一个wx.EVT_菜单事件绑定到一个回调,该回调会弹出一个子wxFrame。我希望弹出的窗口是无模式的,在这种情况下使用wxFrame。我的回调如下所示: def on_open_my_frame(self,event): local_frame = MyFrame(self) local_frame.Show() 这段代码的功能在于,事件实际上会弹出一个我可以与之交互的框架。然而,我有点惊讶它能起作用。事实上,由于我的无模式

我有一个wxPython应用程序,其中我将主框架上的一个wx.EVT_菜单事件绑定到一个回调,该回调会弹出一个子wxFrame。我希望弹出的窗口是无模式的,在这种情况下使用wxFrame。我的回调如下所示:

def on_open_my_frame(self,event):
    local_frame = MyFrame(self)
    local_frame.Show()

这段代码的功能在于,事件实际上会弹出一个我可以与之交互的框架。然而,我有点惊讶它能起作用。事实上,由于我的无模式框架的本质,一旦超出on_open_my_frame方法的范围,我希望垃圾收集器对我的本地_框架进行操作。那代码有效吗?或者换句话说,wxPython中是否有某种机制可以防止窗口在显示之前被破坏

GUI框架的工作方式与其他应用程序稍有不同,因为它们基于事件,事件循环连续运行。因此,当您启动一个框架并显示它时,该框架只是挂起等待用户对其进行操作。换句话说,您创建的小部件等待用户与它们交互,从而生成事件


框架退出的唯一方法是告诉创建的框架实例显式关闭或销毁自身。否则,框架将等待用户关闭它或以其他方式与它交互。

我假设它不是垃圾收集的,因为它成为“self”的子对象,因此保持引用