Как закрыть приложение WxPython, когда пользователь нажимает кнопку закрытия фрейма

Приложение должно закрыться, когда я нажму кнопку закрытия основного фрейма. Но так, как я это реализовал, он завершается с ошибкой сегментации , когда я нажимаю кнопку.

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

Каков правильный ненасильственный способзавершения работы приложения WxPython с помощью кнопки закрытия?


Вот «основной» цикл программы, которую я реализовал:

if __name__ == "__main__":
    app = wx.App(False)
    mf = MainFrame(None, title='Spectrum Checker') #subclasses frame
    mf.register_close_callback( app.Destroy) #what is the apt func?
    app.MainLoop()

Вот как реализован обратный вызов внутри MainFrame:

def __init__(self, parent, title):
    ...
    self.Bind(wx.EVT_CLOSE, self._when_closed)

...

def _when_closed(self, event):
if self.__close_callback__:
    self.__close_callback__()
15
задан Jesvin Jose 31 May 2012 в 11:59
поделиться