我创建了一个控制台程序。出于调试目的,如果不满足某些条件,我需要退出程序。这是一个例子:
if (VDD.isEmpty() || GND.isEmpty()){
qWarning() << "VDD and GND must NOT be empty";
QCoreApplication::quit();
qWarning() << "After the quit";
}
Run Code Online (Sandbox Code Playgroud)
据我了解,quit()不应打印之后的输出。
main()我的程序的功能是这样的:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Do stuff that calls the code above
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
谁能说出这是为什么呢?
我目前正在使用abort(),但我宁愿使用quit()。
quit()导致事件循环在下一次获得控制时返回。它不会立即返回。所以你需要像
QCoreApplication::quit();
return;
Run Code Online (Sandbox Code Playgroud)
或者如果您使用的不是直接从Qt调用的方法,则可能会更复杂一些。
相关exit()方法的文档说:
请注意,与同名的C库函数不同,此函数的确会返回给调用方-事件处理停止。
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |