0

オブジェクトの配列を QtScript から C++ に渡したいのですが、これを実現する方法がわかりません。配列を作成するとすぐに、その中の要素は、アクセスする前に文字列に変換されます。

これは私がこれまで試してきたことです:

class myObject : public QObject, public QScriptable 
{
    Q_OBJECT

public Q_SLOTS:
    void test(QVariantList list);
};

void myObject::test(QVariantList list)
{
    for (QVariantList::const_iterator it = list.begin(); it != list.end(); ++it) {
        QVariant element = *it;

        qDebug() << element.typeName() << element.toString();

        if (element.canConvert<QVariantMap>()) {
           // Not getting here
        }
    }
}

次のスクリプト

myObject.test([{"foo": 1, "bar": 2}, {"baaz": 3, "baaaz": 4}]);

版画

"QString" "[object Object]"
"QString" "[object Object]"

私はQt 4.6を使用しています...

4

1 に答える 1

1

これは報告されたバグです。スロットのパラメーターを QScriptValue に変更し、自分で変換することで回避できる場合があります。

于 2010-04-16T19:26:32.003 に答える