一千萬個為什麽

搜索

QtScript:將一組對象傳遞給C ++

我想將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()) {
          //Not getting here
        }
    }
}

以下腳本

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

版畫

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

我正在使用Qt 4.6 ...

最佳答案

這是一個報告的錯誤,您可以通過更改來解決這個問題插槽中的參數為QScriptValue並自行進行轉換

轉載註明原文: QtScript:將一組對象傳遞給C ++