我应该如何退出Qt程序,例如在加载数据文件时发现文件损坏,并且用户需要退出此应用或重新启动数据文件?

我是不是该:

  • 调用exit(EXIT_FAILURE)
  • 调用QApplication::quit()
  • 调用QCoreApplication::quit()

  • (2)和(3)之间有什么区别?

    最佳答案

    QApplication是从QCoreApplication派生的,因此继承了quit(),它是QCoreApplication的公共(public)插槽,因此QApplication::quit()QCoreApplication::quit()之间没有区别。

    正如我们可以在 QCoreApplication::quit() 的文档中看到的那样,它“告诉应用程序以返回码0(成功)退出”。如果要因为发现文件损坏而退出,则可能不希望返回代码为零,这意味着成功,因此您应该调用 QCoreApplication::exit() ,因为您可以提供非零的returnCode,按照惯例,该代码表示​​错误。

    重要的是要注意:“如果事件循环未运行,则此函数(QCoreApplication::exit())不会执行任何操作”,因此在这种情况下,应调用exit(EXIT_FAILURE)

    09-13 04:15