Como matar um aplicativo WxPython quando o usuário clica no fechamento de um quadro

O aplicativo deve ser fechado quando clico no botão fechar do quadro principal. Mas do jeito que eu implementei, ele sai com umSegmentation fault quando clico no botão.

Eu me preocupo com o desligamento seguro do programa, pois precisarei persistir no disco posteriormente.

O que éforma não violenta adequada terminar uma aplicação WxPython através de um botão fechar?

Aqui está o loop "principal" do programa que implementei:

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

Aqui está como é implementado o retorno de chamada dentro doMainFrame:

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

questionAnswers(4)

yourAnswerToTheQuestion