Jak zabić aplikację WxPython, gdy użytkownik kliknie zamknięcie klatki

Aplikacja ma się zamknąć, gdy kliknę przycisk zamykania głównej ramki. Ale sposób, w jaki go zaimplementowałem, kończy się za pomocąSegmentation fault kiedy klikam przycisk.

Martwię się o bezpieczne zamknięcie programu, ponieważ później będę musiał utrwalać rzeczy na dysku.

Co to jestwłaściwy sposób bez użycia przemocy zakończyć aplikację WxPython za pomocą przycisku Zamknij?

Oto „główna” pętla programu, który zaimplementowałem:

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

Oto jak jest zaimplementowane wywołanie zwrotne w ramachMainFrame:

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