Я хочу передать массив объектов из моего 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 ...