Bonjour à tous,
J'ai commencé à coder en C++ depuis peu et je suis un tutoriel. J'en suis à la partie sur Qt, et jusque la tout se passe bien. Après ce chapitre je me suis mis à coder pour m'exercer et le sujet est un écran simple de choix de race/unités pour un jeu de stratégie.
Cependant en compilant mon programme j'ai une erreur que je ne comprends pas. J'ai créé un signal personnalisé pour communiquer de l'objets A vers l'objet B. J'ai donc dans le header de mon fichier A déclaré les lignes suivantes :
et dans le fichier ccp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 signals: void enregistre(QString,QString,QString,QString,int);
dans le fichier B j'ai déclaré
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 connect(this, SIGNAL(enregistre(QString,QString,QString,QString,int)), prog, SLOT(enregistre(QString,QString,QString,QString,int))); //et plus loin emit enregistre(nom1->text(), raceJ1->currentText(), nom2->text(), raceJ2->currentText(),valeur);
et dans le fichier ccp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public slots : void enregistre(QString nomJ1,QString raceJ1,QString nomJ2,QString raceJ2,int valeur);
et j'obtiens l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void programme::enregistre(QString nomJ1,QString raceJ1,QString nomJ2,QString raceJ2,int valeur) { nom1=nomJ1; nom2=nomJ2; race1=raceJ1; race2=raceJ2; points=valeur; FenArmee *fenetre2(points, race1, 1, this); fenetre2.show(); }
erreur : no matching function for call to 'A::connect(A* const, const char*, B*&, const char*)'
connect(this, SIGNAL(enregistre(QString,QString,QString,QString,int)), prog, SLOT(enregistre(QString,QString,QString,QString,int)));
j'ai peut etre mal compris les méthodes d'initialisation, mais j'ai bien relu le tuto et je comprends toujours pas.
merci d'avance de vos réponses.
Partager