Я создал QScriptEngine и открыл функцию объекта, которую я могу вызвать из js-скрипта.Qt: Как передаются массивы или словари из qscriptengine?
engine->globalObject().setProperty("obj", myObj);
myObj является QObject, который имеет функцию как ...
void MyObject::doSomething(int w, int h) {
...
}
и в моем JS код, я могу назвать это как ...
obj.doSomething(5, 9);
Это работает Я ожидаю, что это произойдет, но я не могу найти какие-либо документы о передаче массивов или словарей этим функциям. Например, если бы я хотел, чтобы передать массив, как бы я определить функцию C++, так что я мог бы сделать что-то вроде этого ...
obj.doSomething([1,2,3], "foo");
Будет ли это быть что-то вроде ...
void MyObject::doSomething(QVector<QVariant> firstArg, QString secondArg);
Трудно это решить, поскольку, когда это не работает, звонок, кажется, терпит неудачу.
Вы пробовали QVariantList? – jpnurmi