我正在开发一个需要使用各种Dialogs的应用程序。如果某人在解除对话框之前关闭了应用程序,那么我很难确保我的Dialogs被正确销毁。我希望使用这样的东西:
class Form(wx.Dialog):
def __init__(self):
wx.Dialog.__init__(None, -1, "Dialog")
self.Bind(wx.EVT_CLOSE, self.onClose)
self.Bind(wx.EVT_CLOSE, self.onClose, MAIN_WINDOW)
...
def onClose(self, evt):
self.Destroy()
我目前遇到的行为是,如果有人打开一个Dialog,然后在解除Dialog之前关闭Application,则应用程序不会完全退出。 MAIN_WINDOW是对已注册为我的顶级窗口的框架的引用。提前谢谢!
答案 0 :(得分:1)
我试图错误地使用事件冒泡。解决方案是确保对话框是顶级窗口的子级,以便应用程序退出也强制对话框也要销毁。
class Form(wx.Dialog):
def __init__(self):
wx.Dialog.__init__(MAIN_WINDOW, -1, "Dialog")
self.Bind(wx.EVT_CLOSE, self.onClose)
...
def onClose(self, evt):
self.Destroy()