我创建了一个控制台程序。为了调试目的,如果不满足某些条件,我需要程序退出。下面是一个示例:
if (VDD.isEmpty() || GND.isEmpty()){
qWarning() << "VDD and GND must NOT be empty";
QCoreApplication::quit();
qWarning() << "After the quit";
}据我所知,quit()之后的输出不应该打印出来。
我的程序的main()函数如下所示:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Do stuff that calls the code above
return a.exec();
}有人能说出为什么会发生这种事吗?
目前我使用的是abort(),但我更愿意使用quit()。
发布于 2017-07-20 12:09:17
quit()使事件循环在下一次获得控制时返回。它不会马上回来。所以你需要这样的东西
QCoreApplication::quit();
return;或者,如果您所使用的方法不是从Qt直接调用的,那么它可能会更复杂一些。
相关exit()方法的文档说明:
注意,与同名的C库函数不同,此函数确实返回给调用方--停止的是事件处理。
https://stackoverflow.com/questions/45214178
复制相似问题