Ich sammle Nutzungsstatistiken für meine Anwendungen, die beinhalten, wie viel jede Sitzung dauert. Ich kann jedoch nicht in der Lage sein, diese Information zu speichern, da keines der Signale, die ich versuchte, tatsächlich meine report_session-Funktion aufruft.Gibt es eine Möglichkeit, eine Funktion direkt vor dem Beenden einer PyQt-Anwendung aufzurufen?
Dies sind die Signale habe ich schon versucht:
- lastWindowClosed()
- aboutToQuit()
- zerstört()
Entweder sind diese Signale nie emittiert erhalten oder die Anwendung funktioniert nicht lange genug danach leben, um etwas anderes zu führen. Hier ist meine Haupt:
app = QtGui.QApplication(sys.argv)
ui = MainWindow()
ui.app = app
QtCore.QObject.connect(ui, QtCore.SIGNAL("destroyed()"), ui.report_session)
ui.show()
logger.info('Started!')
splash.finish(ui)
sys.exit(app.exec_())
Ich habe das nicht versucht, obwohl ich das Atexit-Modul kannte. Am Ende habe ich es vorgezogen, die CloseEvent-Methode von QApplication neu zu implementieren. – fccoelho