Как внутри foo() мы можем определить, что foo() вызвана не из QCoreApplication::exec(), а из точек 1 или 2?
static void foo()
{
...
}
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
foo(); // 1
const int result = QCoreApplication::exec();
foo(); // 2
return result;
}
Вообще есть QEventLoop::isRunning(). Альтернативно - как добраться до экземпляра QEventLoop главного потока? Сходу из документации не могу выудить.
Есть еще QCoreApplication::eventDispatcher(), но он создается вне QCoreApplication::exec().