第一个:Qt 4.7
我想访问一个QVector<double>
脚本内部,它是一个对象成员函数的返回值。即,我已将对象传递给脚本,它具有属性 set 和 get 函数,它们分别具有QVector<double>
参数/返回值。我做了以下事情:
在它自己的标题中:
Q_DECLARE_METATYPE(QVector<double>)
当我设置引擎时:
_engine = new QScriptEngine()
qScriptRegisterSequenceMetaType< QVector<double> >(_engine);
我的对象 ( CalcDataVector
) 具有以下公共插槽(_value
是受保护的成员):
QVector<double> value() { return _value; }
void value(QVector<double> data) { _value = data; }
我将对象发送到脚本引擎,如下所示:
CalcDataVector *v = new CalcDataVector(); // paraphrasing..
QObject *object = v;
QScriptValue value = engine()->newQObject(object);
engine()->globalObject().setProperty("in", value);
我想访问脚本内 v 中的向量:
var test = in.value()
其中,由于我是 qscript 的新手,可能有一个非常明显的语法错误。请赐教!
我收到语法错误:
语法错误:解析错误。
我可以用其他方式操纵我发送的对象,所以我知道它就在那里。
编辑:我还发送与输入相同类型的输出变量。我可以执行以下操作:
var test = [ 100, 200, 300 ]
out.value(test)
但不是
var test = [ 100, 200, 300 ]
in.value(test)