我已经创建了一个控制台程序。出于调试目的,如果不满足某些条件,我需要退出程序。这是一个例子:
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()
。
答案 0 :(得分:4)
quit()
会导致事件循环在下次获取控件时返回 。它不会立即返回。所以你需要像
QCoreApplication::quit();
return;
如果你的方法没有直接从Qt中调用,那么或者可能会更复杂一些。
相关exit()
方法的文档说明:
请注意,与同名的C库函数不同,此函数 返回给调用者 - 它是停止的事件处理。