如何在QScriptValue中迭代isArray()的项目?

时间:2017-08-29 19:21:28

标签: c++ qt qt5 qtscript

所以我有这段代码:

QScriptValue result(someFunction());
if(result.isArray()) {
{
    // Print items in array
}

我该怎么办?我试图将其转换为QList<QScriptValue>,但这并不起作用。我考虑过这样做:

    const int length = (int)result.property("length").toNumber();
    for (int i = 0; i < length; ++i) {
        const QSCriptValue entry(result.property(QString::number(i)))));
        // do something with entry
    }

它有效,但看起来有点难看。

1 个答案:

答案 0 :(得分:0)

基于QScriptValue帮助,可能类似于:

for(v: result.toVariant().as<QVariantList>()) {
    // here v is a QVariant-item
}

需要测试以确定它是否真的。