Object::connect: No such signal
J'ai un problème pour créer des fentes/signal avec une struct. J'ai le code suivant :
qRegisterMetaType<namespace::myClassA::aStruct>();
QObject::connect(&myClassA, SIGNAL(theSignal(myClassA::aStruct)),
&myClassB, SLOT(theSlot(myClassA::aStruct)));
Lors de l'exécution du programme, j'ai eu :
Object::connect: No such signal NameSpace::myClassA::theSignal(myClassA::aStruct)
Object::connect: (receiver name: 'NameSpace__CLASSNAME')
Comment j'ai résolu ce problème?
PS: Le logement et le signal ont été correctement déclarées dans les fichiers d'en-tête de fichier Q_SIGNALS et Q_SLOTS mots-clés, avec le bon argument (aStruct)
Avez-vous d'exécuter
Q_DECLARE_METATYPE/qRegisterMetatype n'est pas nécessaire, ni de l'aide pour des connexions directes (la valeur par défaut lorsque les deux objets de vivre dans le même thread)
Il me semble que même ce qui pourrait ressembler à peu de minuscules piqûres d'aiguille, peut entraver le bon fonctionnement: SIGNAL(PageClosed(QWidget *page)) a généré une erreur. J'ai enlevé le paramètre: la page, et il a été accepté.
qmake
après la mise en œuvre du signal et slot?Q_DECLARE_METATYPE/qRegisterMetatype n'est pas nécessaire, ni de l'aide pour des connexions directes (la valeur par défaut lorsque les deux objets de vivre dans le même thread)
Il me semble que même ce qui pourrait ressembler à peu de minuscules piqûres d'aiguille, peut entraver le bon fonctionnement: SIGNAL(PageClosed(QWidget *page)) a généré une erreur. J'ai enlevé le paramètre: la page, et il a été accepté.
OriginalL'auteur peterphonic | 2013-02-08
Vous devez vous connecter pour publier un commentaire.
Types utilisés dans de signal/slot connexions doivent être entièrement "étendue" parce que l'appel de méthode est converti en texte, de sorte que votre connexion d'appel devrait ressembler à ceci:
Vous devrez probablement mettre à jour le rapport signal/slot déclaration arguments de match.
OriginalL'auteur cmannett85
J'ai trouvé la solution de signal de logement:
La déclaration et l'appel de signaux et de slots fonctions sont incompatibles! Dès que je les ai fixées, le logement m'a appelé.
Ici, vous avez tous les moyens possibles de l'erreur.
20 façons de débogage signaux et slots de Qt
De l'espoir, il a beaucoup aidé après la lecture de ce articlethis et permettra d'économiser votre temps.
OriginalL'auteur AB Bolim
Lorsque vous déclarez la fente/signaux, vous pouvez utiliser les espaces de la structure des arguments comme:
::namespace::ClassA::structA
Plutôt que d'utiliser ClassA::structA de l'intérieur 'espace de noms". Ceci est utile si vous essayez de faire référence à une structure à l'intérieur du même espace de noms.
OriginalL'auteur rolm