当事件循环未启动时,不优雅/杀死Qt应用程序

Ungraceful / kill Qt application when event loop is not started

本文关键字:不优雅 杀死 Qt 应用程序 事件 循环 启动      更新时间:2023-10-16

exit由于事件循环尚未启动而不起作用时,如何终止正在运行的Qt应用程序(QCoreApplication)。

http://doc.qt.io/qt-5/qcoreapplication.html#exit

调用此函数后,应用程序将离开主 事件循环并从调用 exec() 返回。exec() 函数 返回返回代码。如果事件循环未运行,则此函数 什么都不做

我发现的一种(愚蠢的?)方法是启动事件循环并调用QCoreApplication::exit again,但这是我最好的选择吗?

如果我正确理解了您的问题,您尚未调用 QApplication::exec(),因此您的事件循环尚未启动。

如果你还没有调用exec()

来启动事件循环,为什么不直接调用stdlib exit()函数或在调用exec()之前检查错误条件

例如,在主.cpp

if(!somethingWentReallyWrong) {
    a.exec(); // Where a is your QApplication or QCoreApplication instance
} else {
    return myErrorCode;
}