[QT]Problème avec signaux personnalisés

Résolu/Fermé
reltak Messages postés 261 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 14 janvier 2012 - 28 sept. 2009 à 13:08
reltak Messages postés 261 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 14 janvier 2012 - 7 oct. 2009 à 15:07
Bonjour,

Je suis en train de créer une application en Qt avec QtCreator sous Windows, et j'ai un souci avec des signaux personnalisés.
Je vous explique :
J'ai une fenêtre qui appelle un thread qui va boucler pour générer plusieurs chaines de caractères.
Cette fenêtre doit afficher les chaines de caractères au fur et à mesure de leur génération.
J'ai donc un signal particulier dans ma classe héritant de QThread.
signal:
void strGenerated(QString &str);


Ensuite dans ma fenêtre je connecte le signal :

QObject::connect(thrGenerator, SIGNAL(strGenerated(QString&)), this, SLOT(dispString(QString&)));


J'ai dans le code de mon thread également :
emit strGenerated(theString);


La compilation semble bien fonctionner (qmake ne donne aucune erreur). Par contre, lors de l'écriture de l'exécutable, j'ai une erreur "collect2: ld return 1 exit status" avec comme commentaire :
undefined reference to thrgene::strGenerated(QString&)


Je ne sais pas ce que j'ai oublié pour que l'executable soit généré...

Merci de votre aide.
Reltak.

5 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
28 sept. 2009 à 14:13
Essai en supprimant préalablement tout les .o et les fichiers générés par QT (*_ui.h moc_*.cpp etc.).
Il y a un prog QT (uic moc ou un autre) qui doit s'occuper de ces signaux.
Je crois qu'il faut aussi mettre QOBJECT au début de la classe.
0
Je te signale que, dans la classe, la déclaration exacte est: signals:
Bonne continuation.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
28 sept. 2009 à 14:51
bien vu ;-)
0
reltak Messages postés 261 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 14 janvier 2012 41
30 sept. 2009 à 16:01
oui tu as raison désolé c'est une faute de frappe dans le corps du message...
0
reltak Messages postés 261 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 14 janvier 2012 41
30 sept. 2009 à 16:05
Char Snipeur > j'ai supprimé les fichiers objet générés par Qt Creator, mais pas moyen de lancer, toujours la même erreur.
Où devrais-je mettre le QOBJECT exactement ?
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
30 sept. 2009 à 16:43
class MACHIN
{
Q_OBJECT
double fin();
....
}
http://doc.trolltech.com/4.5/qobject.html#Q_OBJECT
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
reltak Messages postés 261 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 14 janvier 2012 41
7 oct. 2009 à 15:07
bonjour,

désolé pour le délai de réponse...
Char Snipeur t'es le meilleur ça fonctionne merci beaucoup ;)

Reltak.
0