【发布时间】:2013-07-05 17:25:28
【问题描述】:
我无法在应用程序退出前进行清理 - 我的清理在其他重要事件发生之前被调用。
目前我正在使用
QObject.connect(self.qtApp,
SIGNAL("lastWindowClosed()"),
self._lastWindowClosed)
我的应用程序包含一个 QtGui.QDialog,它会抛出 SIGNAL("accepted()") 或 SIGNAL("rejected()")(确定或取消按钮)。如果我如上所示进行清理,我会错过这些事件。如果我对 SIGNAL("aboutToQuit()") 进行清理,我不会错过这些活动。
我未能找到关于这两个信号中任何一个的有意义的文档。例如,PySide 在 aboutToQuit 和 lastWindowClosed 上的文档讨论了一些文件,与应用程序的生命周期无关。
看来我需要使用 aboutToQuit()。我在哪里可以找到有关此信号的有意义的文档,以确保在此之前不会错过任何事件?
【问题讨论】:
-
看看标准的python模块atexit。可能你可以使用它并且不需要 PyQt 信号/函数。
-
“错过事件”是什么意思?如果您需要处理 2 个信号,请将它们都连接到插槽。两个插槽都将被调用。还是您担心信号顺序?
-
@Riateche,是的,我担心信号顺序。其中一个信号触发一些处理,而另一个则清除,即销毁处理对象。