QtScript:将对象数组传递给C ++

时间:2010-04-16 11:08:08

标签: qt qtscript

我想将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 ......

1 个答案:

答案 0 :(得分:1)

这是一个报告的bug,您可以通过将广告位中的参数更改为QScriptValue并自行进行转换来解决此问题