Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: heiheshang от Июнь 05, 2009, 08:50



Название: Как объект вернуть в скрипт ?
Отправлено: heiheshang от Июнь 05, 2009, 08:50
Пытаюсь в скрипт вернуть свой объект
В документации написанно что объект надо зарегить с помошью макроса
Код:
qScriptRegisterMetaType
и ему передать две функции
Код:
toScriptValueaForm
fromScriptValueaForm
как правильно реализовать эти функции ?
Пытаюсь сделать так
Код:
Q_DECLARE_METATYPE(aForm*) //Мой класс aForm
QScriptValue toScriptValueaForm(QScriptEngine *eng, const aForm &ba)
{
    QScriptValue ctor = eng->globalObject().property("Current");
    aForm *cls = qscriptvalue_cast<aForm*>(ctor.data());
    if (!cls)
        return eng->newVariant(qVariantFromValue(ba));
}

void fromScriptValueaForm(const QScriptValue &obj, aForm &ba)
{
    Как тут вернуть ba типа aForm из QScriptValue &obj ?
}


Название: Re: Как объект вернуть в скрипт ?
Отправлено: heiheshang от Июнь 05, 2009, 12:33
Опять отвечаю сам себе
Код:
QScriptValue toScriptValueaForm(QScriptEngine *eng, aForm* const &ba)
{
    return eng->newQObject(ba);
}

void fromScriptValueaForm(const QScriptValue &obj, aForm* &ba)
{
    ba = qobject_cast<aForm*>(obj.toQObject());
}


Название: Re: Как объект вернуть в скрипт ?
Отправлено: panAlexey от Июнь 06, 2009, 21:07
Если долбишь ананас, то почему бы не задавать вопросы на его форуме?
А то они там совсем обленились...