Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: qt2010 от Август 02, 2010, 20:54



Название: мой класс в скрипте
Отправлено: qt2010 от Август 02, 2010, 20:54
класс

class TMyObj: public QObject
{
Q_OBJECT
public:
TMyObj();

QVector3D pos, dir;

Q_INVOKABLE void Save();
};

main()
{
QScriptEngine eng;

QScriptValue result = eng.evaluate( "var obj = new TMyObj();" );
}


/////////////////

выдает ошибку: cant find variable: TMyObj

что может быть? ведь унаследованные от QObject должны быть видимы в скрипте, не так ли? и как быть?


Название: Re: мой класс в скрипте
Отправлено: SABROG от Август 02, 2010, 21:22
Ты забыл сообщить движку скрипта о существовании своего класса:

Код
C++ (Qt)
Q_SCRIPT_DECLARE_QMETAOBJECT(TMyObj, QObject*)
...
QScriptValue myObj = eng.scriptValueFromQMetaObject<TMyObj>();
eng.globalObject().setProperty("TMyObj", myObj);
 

http://developer.qt.nokia.com/faq/answer/how_can_i_instantiate_new_objects_in_my_qt_script_code


Название: Re: мой класс в скрипте
Отправлено: qt2010 от Август 03, 2010, 09:48
Спасибо, работает!!!