Есть ли способ вызвать функцию прямо перед завершением работы приложения PyQt?

Я собираю статистику использования для своих приложений, которая включает продолжительность каждого сеанса. Однако, похоже, я не могу сохранить эту информацию, потому что ни один из сигналов, которые я пробовал, на самом деле не вызывает мою функцию report_session.

Вот сигналы, которые я уже пробовал:

  1. lastWindowClosed ()
  2. aboutToQuit ()
  3. destroy ()

Либо эти сигналы никогда не генерируются, либо после этого приложение не живет достаточно долго, чтобы запускать что-либо еще. Вот мой основной:

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_())
6
задан Josh Kelley 30 September 2010 в 16:55
поделиться