В целом ход верный. Если соединяется сигнал и слот из разных потоков, то тип соединения автоматически становится Qt::QueuedConnection. Вместо QEventLoop::processEvents я бы порекомендовал QCoreApplication::processEvents. doc.qt.io/qt-5/qcoreapplication.html#processEvents Processes all pending events for the calling thread ... until there are no more events to process.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.