Je collecte des statistiques d'utilisation pour mes applications, qui indiquent la durée de chaque session. Cependant, je ne peux pas sembler pouvoir enregistrer cette information parce qu'aucun des signaux que j'ai essayés réussit réellement à appeler ma fonction de report_session.Existe-t-il un moyen d'appeler une fonction juste avant la fin d'une application PyQt?
Ce sont les signaux que je l'ai déjà essayé:
- lastWindowClosed()
- aboutToQuit()
- détruits()
Soit ces signaux ne sont jamais émis ou l'application ne ne pas vivre assez longtemps après cela pour courir autre chose. Voici ma principale:
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_())
Je n'ai pas essayé cela, bien que je connaissais le module atexit. J'ai fini par préférer réimplémenter la méthode closeEvent de QApplication. – fccoelho