Я искал несколько часов подряд, но не могу понять, как зарегистрировать тип перечисления со стороны 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, но, похоже, это не помогает.