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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
signals:
    void enregistre(QString,QString,QString,QString,int);
et dans le fichier ccp

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);
dans le fichier B j'ai déclaré

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 dans le fichier ccp :

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();
}
et j'obtiens l'erreur suivante :

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.