QCoreApplication退出不起作用

时间:2017-07-20 12:04:16

标签: qt

我已经创建了一个控制台程序。出于调试目的,如果不满足某些条件,我需要退出程序。这是一个例子:

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()

1 个答案:

答案 0 :(得分:4)

quit()会导致事件循环在下次获取控件时返回 。它不会立即返回。所以你需要像

这样的东西
QCoreApplication::quit();
return;
如果你的方法没有直接从Qt中调用,那么

或者可能会更复杂一些。

相关exit()方法的文档说明:

  

请注意,与同名的C库函数不同,此函数 返回给调用者 - 它是停止的事件处理。