Dans le QT 4.8 documentation il indique que:Où se trouve la documentation indiquant que vous ne pouvez pas supprimer un paramètre d'une connexion de logement de signal QT si le paramètre ne provient pas de la fin?
Le mécanisme des signaux et des fentes est de type coffre-fort: la signature d'un signal doit correspondre à la signature de la fente de réception. (En fait, un slot peut avoir une signature plus courte que le signal qu'il reçoit car il peut ignorer des arguments supplémentaires.) Comme les signatures sont compatibles, le compilateur peut nous aider à détecter les discordances de type.
Cependant code comme:
QObject::connect(&source, SIGNAL(MySignal(QByteArray,QString,bool), &sink, SLOT(MySlot(QByteArray,bool));
donne une erreur "Incompatible émetteur/récepteur arguments".
Pourquoi cela se produit-il et où est-il documenté que vous devez supprimer les paramètres à la fin? Je comprends qu'avec des conversions implicites, il peut y avoir des problèmes, mais je pensais que QT fonctionnait essentiellement avec des métadonnées qui devraient être capables de raccorder un signal/slot comme ci-dessus.
Un peu d'une question inutile car il peut être facilement fait avec la syntaxe de connexion Qt5 et un lambda. Vous utilisez simplement la mauvaise méthode de connexion. – IlBeldus