Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: vladmailbox от Июнь 16, 2010, 16:20



Название: Доступ к переменным скрипта
Отправлено: vladmailbox от Июнь 16, 2010, 16:20

Вопрос, как получить переменные скрипта из кода?

Если мы регистрируем собственные переменные engine.globalObject().setProperty("dlg",...), то потом можем ее получить как engine.globalObject().property("dlg"). А если мы создаем переменную в самом скрипте как var dbg="123", то как получить ее значение из C++ кода?


Название: Re: Доступ к переменным скрипта
Отправлено: asvil от Июнь 16, 2010, 19:27
Если переменная в скрипте объявлена как var то она доступна только во время выполнения функции, или кода ее использующего. К такой переменной нет смысла обращаться из c++.
Если где-либо в qt script коде написать dlg = new QDialog(0);, то переменная dlg будет являтся свойством QScriptEngine::globalObject().
Если где-либо в qt script коде написать
someObject {
  dlg: new Dialog(0);
};
, то переменная dlg будет свойством того объекта в контексте которого выполнялся код (someObject)
Получение двух вышеперечисленных переменных в c++:
QScriptEngine::globalObject()::property("dlg")
QScriptEngine::globalObject()::property("someObject").::property("dlg")