【问题标题】:wxPython App - Ensure All Dialogs are DestroyedwxPython App - 确保所有对话框都被销毁
【发布时间】:2011-03-07 22:45:33
【问题描述】:

我正在开发一个需要使用各种对话框的应用程序。如果有人在关闭对话框之前关闭应用程序,我无法以确保正确销毁我的对话框的方式绑定事件。我希望使用这样的东西:

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()

我目前遇到的行为是,如果有人打开对话框,然后在关闭对话框之前关闭应用程序,则应用程序不会完全退出。 MAIN_WINDOW 是对注册为我的顶级窗口的框架的引用。提前致谢!

【问题讨论】:

    标签: python event-handling wxpython destructor


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-26
      相关资源
      最近更新 更多