Я пытаюсь передать enum как значение в слот в моей программе, но у меня возникли некоторые проблемы.В моем заголовочном файле я создал enum:
Q_ENUMS(button_type);
enum button_type {button_back, button_up, button_down, button_ok};
Q_DECLARE_METATYPE(button_type);
И в своем файле .cpp я пытаюсь передать его в слот:
QObject::connect(buttons->ui.pushButton_back, SIGNAL(clicked()), this, SLOT(input_handler(button_back)));
Но когда я компилируюкод, который я получаю:
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')
Он компилируется и работает нормально, если я не передаю аргумент input_handler.
Я также прочитал, что должен вызывать qRegisterMetaType, но яне могу получить правильный синтаксис.Вот что я попробовал:
qRegisterMetaType<button_type>("button_type");
но я получаю эту ошибку:
main_application.h:15:1: error: specializing member ‘::qRegisterMetaType<button_type>’ requires ‘template<>’ syntax
Может кто-нибудь пролить свет на это для меня?
Спасибо!
Marlon