Dans mon IHM, j'ai un ensemble de label affichant chacun l'état d'un thread. Voici la déclaration de mon thread :
Code :
- #ifndef __QTHREADBOT_H__
- #define __QTHREADBOT_H__
- #include <qobject.h>
- #include <qthread.h>
- class QThreadBot : public QObject, public QThread {
- Q_OBJECT
- public:
- QThreadBot () : QObject (0, "aThread" ), QThread () {
- qDebug ("Creating a thread\n" );
- }
-
- /* redefines run method */
- void run ();
- signals:
- void stateChanged (const QString &str);
- };
- #endif // __QTHREADBOT_H__
|
(j'en entend déjà rire dans le fond).
Je crée en même temps dans une boucle mes labels et mes threads :
Code :
- QThreadBot *aBot = new QThreadBot ();
- QLabel *lab = new QLabel (centralWidget, "threadLabel" );
- lab->setGeometry (10, (20*i+1), 200, 15);
- lab->setText ("creating thread" );
- myBotList.append (aBot);
- QObject::connect (aBot, SIGNAL (stateChanged (QString)),
- lab, SLOT (setText (QString)));
- aBot->start ();
|
Mais à l'éxécution, la connection ne se fait pas, et j'ai un message d'erreur pour chaque création de thread :
QObject::connect: No such signal QThreadBot::stateChanged(QString)
QObject::connect: (sender name: 'aThread')
QObject::connect: (receiver name: 'threadLabel') |
Qu'es-ce que j'ai bien pu rater ?
Message édité par kadreg le 11-05-2003 à 11:06:51
---------------
brisez les rêves des gens, il en restera toujours quelque chose... -- laissez moi troller sur discu !