Hello
J'ai le code suivant :
ça marche bien. Mon thread se créé et declenche bien mon slot DisplayMessageCptSlot
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 QtWinMain::QtWinMain(QString pFicRsc, QString pNomUtilisateur) { mCheckVal = new CheckDispo(); (qui est un Qthread) mCheckVal->setParent(this); mCheckVal->SetIdEleve(mIdEleve); connect( mCheckVal, SIGNAL(DisplayMessage(QString)), this, SLOT(DisplayMessageCptSlot(QString)), Qt::DirectConnection ) ; connect( mCheckVal, SIGNAL(HideMessage()), this, SLOT(HideMessageCptSlot()), Qt::DirectConnection ) ; mCheckVal->start(); }
cette méthode est la suivante :
où wChaMsgLabel est un QLabel de mon QtWinMain.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void QtWinMain::DisplayMessageCptSlot( QString aMessage ) { //wChaMsgLabel->moveToThread(mCheckVal); wChaMsgLabel->setText( aMessage ) ; wChaMsgLabel->show() ; }
et la ... j'ai un message étrange :
Et effectivement quand je debug je me rends compte que lors du traitement de DisplayMessageCptSlot je ne suis pas dans mon thread principale.ASSERT failure in QCoreApplication:: sendevent "Cannot send events to objects owne by a different thread."
Une petite idée de pourquoi j'en suis la ?
Partager