Название: Не получается из скрипта получить доступ к Q_ENUMS
Отправлено: dmitriym от Март 23, 2015, 10:46
Qt 5.4.1 msvc 2013 OpenGL x64 Класс: #ifndef A_H #define A_H //------------------------------------------------------------------------------ #include <QtCore> #include <QtScript> //------------------------------------------------------------------------------ class A : public QObject { Q_OBJECT Q_ENUMS(E) public: enum E {a,b,c};
explicit A(QObject *_parent = nullptr); virtual ~A(); //------------------------------------------------------------------------------ static QScriptValue qscriptCtor(QScriptContext* _context, QScriptEngine *_engine) { return _engine->newQObject(new A, QScriptEngine::ScriptOwnership ); } //------------------------------------------------------------------------------ public: static void Init(QScriptEngine *_engine) { _engine->globalObject().setProperty("A", _engine->newQMetaObject(&QObject::staticMetaObject, _engine->newFunction(qscriptCtor) ) );
} //------------------------------------------------------------------------------
signals:
public slots: };
#endif // A_H
#include "a.h" //------------------------------------------------------------------------------ A::A(QObject *_parent) : QObject(_parent) {
} //------------------------------------------------------------------------------ A::~A() {
} //------------------------------------------------------------------------------
Скрипт: print(A.a); var t = new A(); print(t); print(t.a);
A() как конструктор срабатывает верно, но A.a == undefined. Что я не так делаю?
Название: Re: Не получается из скрипта получить доступ к Q_ENUMS
Отправлено: RSATom от Март 23, 2015, 13:08
Рекомендую попробовать поменять первую букву элементов Enum на заглавную. В QML из-за этого возникают проблемы, возможно здесь та же ситуация.
Название: Re: Не получается из скрипта получить доступ к Q_ENUMS
Отправлено: dmitriym от Март 23, 2015, 13:12
Попробовал поменять - результат тот же.
|