Estoy recopilando estadísticas de uso para mis aplicaciones que incluyen cuánto dura cada sesión. Sin embargo, parece que no puedo guardar esta información porque Ninguna de las señales que probé realmente logra llamar a mi función report_session.¿Hay alguna manera de invocar una función justo antes de que finalice una aplicación PyQt?
Estos son las señales que ya he intentado:
- lastWindowClosed()
- aboutToQuit()
- destruidas()
Cualquiera de estas señales nunca se emiten o la aplicación no No vivir lo suficiente después de eso para ejecutar cualquier otra cosa. Aquí es mi principal:
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_())
No lo he intentado, aunque era consciente del módulo atexit. Terminé prefiriendo volver a implementar el método closeEvent de QApplication. – fccoelho