I am trying to pass enum as a value to a slot in my program, but I am having some problems. In my header file, I created an enumeration:
Q_ENUMS(button_type); enum button_type {button_back, button_up, button_down, button_ok}; Q_DECLARE_METATYPE(button_type);
And in my .cpp file, I'm trying to pass it to the slot:
QObject::connect(buttons->ui.pushButton_back, SIGNAL(clicked()), this, SLOT(input_handler(button_back)));
But when I compile the code, I get:
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')
It compiles and works fine unless I pass the input_handler argument.
I also read that I need to call qRegisterMetaType, but I can not understand that the syntax is correct. Here is what I tried:
qRegisterMetaType<button_type>("button_type");
but I get this error:
main_application.h:15:1: error: specializing member '::qRegisterMetaType<button_type>' requires 'template<>' syntax
Can anyone shed some light on this for me?
Thanks!
Marlon
user672033
source share