シグナルが失われている理由がわかりません - イベントループの開始前に正常に送信されたシグナルはキューに入れられて送信されます。以前のシグナル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
スレッド内にあります。 –