代码之家  ›  专栏  ›  技术社区  ›  g.d.d.c

wxpython应用程序-确保所有对话框都已销毁

  •  1
  • g.d.d.c  · 技术社区  · 16 年前

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

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

    我当前遇到的行为是,如果有人打开了一个对话框,然后在关闭该对话框之前关闭该应用程序,则该应用程序不会完全退出。主窗口是对注册为顶级窗口的框架的引用。事先谢谢!

    1 回复  |  直到 12 年前
        1
  •  1
  •   g.d.d.c    16 年前

    我试图错误地使用事件冒泡。解决方案是确保对话框是顶级窗口的子级,这样退出的应用程序也会强制销毁对话框。

    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()
    
    推荐文章