2017-08-29 3 views
0

だから私はこのコードを持っている:isArray()がQScriptValueの項目を反復処理する方法は?

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 
    } 

それは動作しますが、ちょっと醜いようです。

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

それならば、実際に確認するためにテストが必要:おそらくのようなものがQScriptValue助けに基づいて

+0

モジュールは廃止されました。 – dtech

+0

新しい 'QJSEngine'に切り替えることができる場合、' QJSValue'クラスは配列インデックスを受け付けるプロパティ関数オーバーロードを持っています:https://doc.qt.io/qt-5/qjsvalue.html#property-1 – Felix

答えて

関連する問題