У меня есть случай, когда сигнал теряется, и я не понимаю, почему - обычно сигналы, отправленные до цикла событий, запускаются, просто выстраиваются в очередь и отправляются тогда.Сигнал перед началом цикла цикла QThread потерян
Это то, что код выглядит следующим образом (для объекта QThread):
void OffloadHandler::run()
{
cout << "Start" << endl;
connect(this, SIGNAL(loopStarted()), SLOT(onLoopStarted()), Qt::QueuedConnection);
emit loopStarted();
exec();
}
void OffloadHandler::onLoopStarted()
{
cout << "Here!" << endl;
}
Нить начинается в другом месте и Start
записывается в консоли, но Here1
никогда не - сигнал не принимается. Я использую один и тот же шаблон в своем основном цикле сообщений, и он работает, но в этом поточном контуре сообщений он не работает.
В коде есть что-то явно неправильное?
Где находится этот «loopStarted»? – Koying
Прямо там в нитке. –