У меня есть случай, когда сигнал теряется, и я не понимаю, почему - обычно сигналы, отправленные до начала цикла обработки событий, просто ставятся в очередь и затем отправляются.
Вот как выглядит код (для объекта 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
никогда не бывает -- сигнал не получен.Я использую тот же шаблон в моем основном цикле сообщений, и он работает, но в этом цикле сообщений он не работает.
Что-то явно не так в моем коде здесь?