Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: dmitriym от Март 23, 2015, 10:46



Название: Не получается из скрипта получить доступ к 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
Попробовал поменять - результат тот же.