J'essaie de passer une enum comme valeur à un slot dans mon programme, mais j'ai quelques problèmes. Dans mon fichier d'en-tête, je l'ai créé le ENUM:Qt signal avec une enum comme paramètre
Q_ENUMS(button_type);
enum button_type {button_back, button_up, button_down, button_ok};
Q_DECLARE_METATYPE(button_type);
Et dans mon fichier .cpp je suis en train de passer à une fente:
QObject::connect(buttons->ui.pushButton_back, SIGNAL(clicked()), this, SLOT(input_handler(button_back)));
Mais quand je compiler le code que je reçois :
Object::connect: No such slot main_application::input_handler(button_back) in main_application.cpp:44
Object::connect: (sender name: 'pushButton_back')
Object::connect: (receiver name: 'main_applicationClass')
Il compile et fonctionne correctement si je ne transmets pas un argument à input_handler.
J'ai également lu que je devrais appeler qRegisterMetaType, mais je n'arrive pas à obtenir la syntaxe correcte. Voici ce que j'ai essayé:
qRegisterMetaType<button_type>("button_type");
mais je reçois cette erreur:
main_application.h:15:1: error: specializing member ‘::qRegisterMetaType<button_type>’ requires ‘template<>’ syntax
Quelqu'un peut-il faire la lumière sur ce pour moi?
Merci!
Marlon
Rien à propos de cette erreur "memberizing ..." ...? – Smar