我有一個信號丟失的情況,我不明白爲什麼 - 通常在事件循環開始之前發送的信號剛剛排隊併發送。之前的信號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 2012-03-09 18:11:43
在線程中。 – 2012-03-09 18:13:58