wxPython App - убедитесь, что все диалоги уничтожены - PullRequest
1 голос
/ 24 июня 2010

Я работаю над приложением, которое будет нуждаться в использовании различных диалогов.У меня возникают проблемы с привязкой событий таким образом, чтобы гарантировать, что мои диалоги будут уничтожены должным образом, если кто-то закроет приложение перед закрытием диалогов.Я ожидал бы использовать что-то вроде этого:

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 - это ссылка на фрейм, зарегистрированный как мое окно верхнего уровня.Заранее спасибо!

1 Ответ

1 голос
/ 25 июня 2010

Я пытался использовать всплывающее окно событий неправильно. Решение состоит в том, чтобы убедиться, что диалоги являются дочерними элементами окна верхнего уровня, поэтому выход из приложения заставляет диалоги также уничтожать.

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