Я искал часы подряд, но не могу понять, как мне зарегистрировать тип enum со стороны C ++, чтобы я мог использовать его со стороны среды сценариев при использовании QJSEngine?
У меня есть класс которая наследуется от QObject, зарегистрирована в среде сценариев и имеет функцию, которая принимает перечисление в качестве аргумента. Я хочу иметь возможность вызывать эту функцию из среды сценариев.
class ScriptWrapper : public QObject
{
Q_OBJECT
public:
ScriptWrapper(QJSEngine& engine)
{
QJSValue scriptVal = engine.newQObject(this);
engine.globalObject().setProperty("someClass", scriptVal);
}
enum class Foo
{
Bar,
Kek
};
// Q_ENUM(Foo)
Q_INVOKABLE void set(Foo foo);
};
Что мне нужно сделать, чтобы иметь возможность вызывать set () со стороны сценариев при использовании QJSEngine? Я попытался прокомментировать вызов Q_ENUM, но, похоже, он не помогает.