在应用程序终止之前进行Qt和清理

时间:2013-07-04 08:49:20

标签: python qt signals pyqt4

我在应用程序退出之前无法进行清理 - 在其他重要事件发生之前调用我的清理。

目前我正在使用

QObject.connect(self.qtApp,
                SIGNAL("lastWindowClosed()"),
                self._lastWindowClosed)

我的应用程序由一个QtGui.QDialog组成,它会抛出SIGNAL("accepted()")SIGNAL("rejected()")(“确定”或“取消”按钮)。如果我如上所示进行清理,我会错过这些事件。如果我在SIGNAL("aboutToQuit()")进行清理,我不会错过这些事件。

我没有发现任何两个信号的有意义的文档。例如,PySide关于aboutToQuitlastWindowClosed的文档讨论了一些文件和与应用程序生命周期无关的事情。

看来我需要使用aboutToQuit()。我在哪里可以找到关于此信号的有意义的文档,以便我确定之前没有错过任何事件?

1 个答案:

答案 0 :(得分:1)

请参阅QCoreApplication::aboutToQuit documentation page

  

如果您的应用程序必须进行最后一秒的清理,则该信号特别有用。请注意,在此状态下无法进行用户交互。

因此,如果您想进行清理,则应使用此信号。

关闭所有窗口时会发出lastWindowClosed信号。它不一定导致应用程序终止。并且不保证在应用程序终止时发出此信号(例如,使用QApplication::quit以编程方式关闭应用程序时不会发出此信号。)