Для теста написал такой скрипт:
Код: Выделить всё
function somearrConstructor(v1, v4)
{
this.len = v1
this.textdata = v4
}
var somearr = new somearrConstructor( 4, "anothertext")
return ( somearr )и вот так его отрабатываю:
Код: Выделить всё
QScriptValue qer = qsEngine.evaluate(testScript);
if (qsEngine.hasUncaughtException())
{
int line = qsEngine.uncaughtExceptionLineNumber();
qDebug() << " uncaught exception at line"
<< line << ":" << qer.toString();
}
QScriptValue tscv = qer.property("len");
if (tscv.isValid() )
qDebug() << " "<< "len is " << tscv.toInt32();Работает нормально, но проблема в том, что мне на самом деле нужно получать не массив, а таблицу. Т.е. скрипт должен быть типа такого
Код: Выделить всё
function answerConstructor (v1, v2,v3)
{
this.text = v1
this.action = v2
this.num = v3
}
function somearrConstructor(v1, v2, v3, v4)
{
this.len = v1
this.first = v2
this.second = v3
this.textdata = v4
}
var answer1 = new answerConstructor( "www111", "ee33", 456)
var answer2 = new answerConstructor( "qqq111", "eccc33", 856)
var somearr2 = new somearrConstructor( 4, answer1, answer2, "anothertext")
return ( somearr2 )Но вот он не работает.
Код: Выделить всё
QScriptValue ans1 = tscv.property("second");и ans1.isValid() возвращает false. При том, что остальные свойства возвращает нормально, как и раньше.
Возникают вопросы:
1. Как всетаки получить из скрипта таблицу?
2. Как получить значения переменных после выполнения скрипта. Т.е. например
Код: Выделить всё
var a = 1
var b = a + 3
return a+bКак узнать значения отдельно a и b ?
3. Существует ли где-то руководство по QtScript? Именно руководство, а не стандарт, и именно по QtScript, а не по Java
4. Отладчик будет когданибудь потом, ладно... Но, есть ли где-то интерпретатор, как в lua, например?