退出Qt应用程序时出现重复错误

2024-03-29 12:49:26 发布

您现在位置:Python中文网/ 问答频道 /正文

偶尔我会在应用程序关闭后,通过单击应用程序窗口左上角的红色退出/关闭按钮(只有在OSX上运行应用程序时才会发生这种情况),出现同样的错误。你知道吗

enter image description here

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

enter image description here

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

[Finished in 28.0s with exit code -11]

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

这是我正在使用的主窗口类。因为我正在捕捉窗口关闭事件,我可以计算应用程序是如何退出的,如果这是导致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()

Tags: self应用程序消息initdef错误按钮parent
1条回答
网友
1楼 · 发布于 2024-03-29 12:49:26

对事件使用accept()表示父级不应处理此事件,但此小部件将处理此事件。我不知道在您的例子中窗口是否是根窗口,但是accept()可能不是必需的。另外,在本例中,您将要退出,因此实际上没有理由调用closeEvent—您应该改为调用destroy(),或者执行系统退出并等待自动销毁。你知道吗

为了确保程序关闭,您可以始终

sys.exit()

相关问题 更多 >