我应该如何退出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)
。