Приложение должно закрыться, когда я нажму кнопку закрытия основного фрейма. Но так, как я это реализовал, он завершается с ошибкой сегментации , когда я нажимаю кнопку.
Я беспокоюсь о безопасном завершении работы программы, потому что позже мне нужно будет сохранить данные на диск.
Каков правильный ненасильственный способзавершения работы приложения 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__()