Приветствую
Допустим есть класс с перечислениями, например
class CommunicationEnums {
public:
CommunicationEnums() {}
enum EButtons {
BTN_LEFT = 2,
BTN_RIGHT = 4,
};
};
От него наследуется другой класс, например
class AppCore : public QObject, public CommunicationEnums
{
Q_OBJECT
Q_ENUMS(EButtons)
.......
public:
Q_INVOKABLE void processButton(EButtons button);
.......
Регистрирую его
qmlRegisterUncreatableType<AppCore>("AppCore", 2, 0, "AppCore", "Only enums");
и передаю в QML
Если в QML пишу:
console.log(AppCore.BTN_LEFT)
как и полагается, выводится 2
Но если пытаюсь вызвать функцию
appCore.processButton(AppCore.BTN_LEFT);
выводится
Error: Unknown method parameter type: EButtons
Причём, если
enum { ... }
перенести в AppCore, то вызов функции происходит нормально О_о
Эм, что делать и кто виноват?