退出Qt计划的正确方法?

dai*_*isy 118 resources qt exit quit

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

我是不是该:

  1. 呼叫 exit(EXIT_FAILURE)
  2. 呼叫 QApplication::quit()
  3. 呼叫 QCoreApplication::quit()

和(2)和(3)之间的区别?

Bil*_*ill 135

QApplication派生自QCoreApplication,从而继承了quit()哪个是公共插槽QCoreApplication,因此QApplication::quit()和之间没有区别QCoreApplication::quit().

我们可以在QCoreApplication::quit()它的文档中读到"告诉应用程序以返回代码0(成功)退出." .如果你想因为发现文件损坏而退出,那么你可能不想退出返回代码为零,这意味着成功,所以你应该调用,QCoreApplication::exit()因为你可以提供一个非零的returnCode,按照惯例,它指示一个错误.

重要的是要注意"如果事件循环没有运行,这个函数(QCoreApplication :: exit())什么也不做",所以在这种情况下你应该调用exit(EXIT_FAILURE).


lau*_*ent 30

你可以打电话qApp.exit();.我总是使用它,从来没有遇到过问题.

如果您的应用程序是命令行应用程序,您可能确实想要返回退出代码.这完全取决于你的代码是什么.

  • Qt5这有效QApplication :: quit() (2认同)
  • 我需要执行以下操作:`qApp-> exit();` (2认同)