J'arrive pas à connecter mon signal [QT] - C++ - Programmation
Marsh Posté le 11-05-2003 à 11:19:56
J'ai trouvé, c'est les types dans le connect qui étaient incomplets
Marsh Posté le 13-05-2003 à 13:40:18
Hello,
j'ai un problème relativement similaire, j'ai pas d'erreur à la compilation mais par contre pdt l'exécution du programme rien ne se passe
Code :
|
Dans mon jeu quand le joueur perd une vie je fais "emit lifeRemoved()", ce qui devrait changer le texte affiché, or il ne change pas, qqn voit d'où ça peut venir ?
Marsh Posté le 13-05-2003 à 13:41:46
[ zed ] a écrit : |
Dans le SLOT, on met un type de paramettre, pas la valeur en elle même.
Marsh Posté le 13-05-2003 à 13:50:53
ok, bon g changé mon connect:
Code :
|
et le emit:
Code :
|
mais tjs rien ne se passe
Marsh Posté le 13-05-2003 à 18:03:26
Montre la déclaration de ton signal
Marsh Posté le 13-05-2003 à 18:09:00
voilà:
Code :
|
Marsh Posté le 13-05-2003 à 18:21:17
bon apparement ça vient pas du signal, j'ai testé de changer le connect comme ça :
Code :
|
et là ça marche, le programme quitte... donc apparement c le setText() qui fonctionne pas ou alors c la frame qui est pas rafraîchie mais ça me semble bizarre...
Marsh Posté le 13-05-2003 à 18:25:37
[ zed ] a écrit : bon apparement ça vient pas du signal, j'ai testé de changer le connect comme ça :
|
c'est possible que le le texte du label ne soit pas changé aussitot. Crée un autre slot dans lequel du fait le setText sur le label suivi d'un repaint dessus
Marsh Posté le 13-05-2003 à 18:43:08
gloop> ça marche pas mieux mais je viens de tomber sur une autre erreur, voici la classe qui fait toutes les connections vues plus haut :
Code :
|
en fait je me dis que mes problèmes viennent du fait que "Q_OBJECT" est en commentaire, mais le pb c que si j'enlève les commentaires ça me donne ça à la compilation :
Linking... |
et là je pige encore moins
Marsh Posté le 13-05-2003 à 19:03:12
la macro Q_OBJECT doit être présente dans chaque classe gérant des signaux et/ou slots.
les erreurs de link sont certainement dues au fait que le fichier créé par moc n'est pas mis
Marsh Posté le 13-05-2003 à 19:11:14
gloop a écrit : la macro Q_OBJECT doit être présente dans chaque classe gérant des signaux et/ou slots. |
ui, enfin à la base y'a pas de signaux ni slots dans cette classe, g juste rajouté un slot pour pouvoir faire le repaint() mais bon je me heurte à un nouveau pb maintenant
Citation : les erreurs de link sont certainement dues au fait que le fichier créé par moc n'est pas mis |
n'est pas mis où ?
et on le met comment ?
Marsh Posté le 13-05-2003 à 19:51:43
ben tu fais:
moc truc.h -o truc.moc.cpp
pour la suite, tu compiles le truc.moc.cpp normalement
Marsh Posté le 14-05-2003 à 16:50:37
effectivement ça a l'air de marcher maintenant, merci bien!
Marsh Posté le 14-05-2003 à 17:13:18
un dernier truc kan même
comment on fait pour dire à VC++ de faire un moc automatique de certains fichiers ?
Marsh Posté le 14-05-2003 à 17:17:00
[ zed ] a écrit : |
Si tu utilise qt3, tu as qmake qui a partir de la liste de tes fichiers est capable de te générer un fichier .dsp gérant la compilation des fichiers, et l'utilisation de moc en cas de besoin
Marsh Posté le 14-05-2003 à 17:36:22
non j'utilise qt 2.30 mais c bon g trouvé en trifouillant dans les options du projet
merci!
Marsh Posté le 11-05-2003 à 11:01:54
Dans mon IHM, j'ai un ensemble de label affichant chacun l'état d'un thread. Voici la déclaration de mon thread :
(j'en entend déjà rire dans le fond).
Je crée en même temps dans une boucle mes labels et mes threads :
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 !