退出Qt应用程序重复出错

时间:2014-07-25 18:52:33

标签: python pyqt

偶尔我会在应用程序关闭后通过单击应用程序窗口左上角的红色退出/关闭按钮获得相同的错误(只有在OSX上运行该应用程序时才会发生)。

enter image description here

下面的错误对话框是我所有的,因此很难找到问题所在:

enter image description here

除此消息外,cmd行还有一个打印输出:

[Finished in 28.0s with exit code -11]

我想知道是否有人遇到过同样的问题并且已经知道如何解决它。 应用程序对话框窗口再次关闭。用户单击红色关闭按钮退出该应用程序。应用程序已退出后,下面发布的错误窗口会弹出2-3秒。

这是我正在使用的MainWindow类。由于我正在捕捉窗口关闭事件,因此如果这是导致OSX错误消息的原因,我可以花费该应用程序退出的方式....如果我只是知道究竟是什么导致该烦人的错误消息....

class MainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
    def closeEvent(self, e):
        result = QtGui.QMessageBox.question(self,"Confirm window","Are you sure you want to close the window?",QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,QtGui.QMessageBox.No)
        if result == QtGui.QMessageBox.Yes:
            e.accept()
            QtGui.QMainWindow.closeEvent(self, e)
        else:
            e.ignore()

1 个答案:

答案 0 :(得分:1)

在事件上使用accept()表示父母不应处理此事件,但此窗口小部件将处理此事件。在您的情况下,我不知道窗口是否是根窗口,但accept()可能不是必需的。此外,在这种情况下,您即将退出,因此实际上没有理由调用closeEvent - 您应该调用destroy(),或者执行系统退出并等待自动销毁

为了确保程序关闭,您可以随时

sys.exit()