Bien le Bonsoir, j'essaie de lier un signal d'une classe fille de QOject que j'utilise comme composant QML, avec une classe fille de QWidget. j'ai fait tous les tests possibles et m'assurer de déterrer toutes les erreurs mais jusqu'ici je n'ai pas trouvé mon erreur. je me suis aussi assuré que le signal provenant du composant QML etait bien declenché mais c'est au niveau de connect que ça flanche d'une façon qui m'est inconnue et surtout il n'y'a aucune erreur.

voici le code pour une illustration

Code qt : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// la classe message est celle du composant QML 
class Message: public QObject
{
    Q_OBJECT
    Q_PROPERTY(Status status READ status WRITE setStatus NOTIFY statusChanged)
    Q_PROPERTY(QString message READ message WRITE setMessage NOTIFY messageChanged)
    public:
        explicit Message();
        enum Status {
            NotFound,
            Found
        };
        Q_ENUM(Status)
       Status status() const
        {
            return m_status;
        }
        QString message() const
        {
            return m_msg;
        }
        void setMessage(QString message)
        {
            m_msg = message;
            qDebug("ici set message");
            emit messageChanged(message);
            qDebug("emission reussi");
        }
 
        Q_INVOKABLE void affiche()
        {
            qDebug("j'affiche ici");
        }
 
        void setStatus(Status status)
        {
            m_status = status;
            emit statusChanged(status);
        }        
 
    signals:
        void statusChanged(Status);
        void messageChanged(QString);
    public slots:
        void change(bool a);
//        void mess(QString);
 
public:
        Status m_status;
        QString m_msg;
 
};
 
#endif // MESSAGE_H
 
 
//voici la class héritant de QWidget
 
class Gamer : public QWidget
{
    Q_OBJECT
public:
    explicit Gamer(QWidget *parent = nullptr);
    void initialise(); // crée la liste de mot de depart
    QStringList randomChoice(); // tire 8nombre au hazard et renvoit les Lettres de l'alphabet correpondante
    QStringList generateName(QStringList init); // genere tous les noms possibles à partir des huits lettres et les renvoit sous forme de Liste
    void checkForRandomName(QStringList foundInit); // recupere la liste generee et recupere les nombres appartenant aux dictionnaires et sauvegarde le tout dans m_foundInit
 
 
signals:
    QString foundName(bool a); // se declenche quand l'utilisateur saisir un nom correct de la liste
    QStringList generateNameCompleted(QStringList init); // se declenche quand la generation de nom à partir du Random choice se termine
    QStringList initCompleted(QStringList init); // se declenche quand l'initialisation de la liste se termine
 
 
 
 
public slots:
    bool checkForName(const QString &name);
    void mess(QString);
 
private:
    QStringList m_init;
    QStringList m_foundInit;
    Message *m_msg;
};
 
#endif // GAMER_H
 
 
//et voici l'implementation de son constructeur 
 
Gamer::Gamer(QWidget *parent) : QWidget(parent)
{
    Q_UNUSED(parent);
    m_msg = new Message;
    m_msg->change(true);
    m_init = QStringList();
    m_foundInit = QStringList();
    connect(this, &Gamer::foundName, m_msg, &Message::change);
    connect(m_msg, &Message::messageChanged, this, &Gamer::checkForName);
    connect(m_msg, SIGNAL(messageChanged(QString)), this, SLOT(mess(QString)));
}


je vous remercie pour vos reponses