我的应用程序中有一个类,注册为QML
的单例。我的目的是在QML
中收集关联数组中的值,并将该数组传递给C ++
。以下是该类的简化版本:
class Config : public QObject
{
Q_OBJECT
private:
Config(QObject *parent = 0);
public:
static Config *instance();
~Config();
Q_INVOKABLE void sendValue (const QVariantMap &map) {
qWarning() << map.size();
}
}
这里我将类的一个实例注册为单例模式:
qmlRegisterSingletonType<Config>("myNS", 1, 0, "Config", config_singletontype_provider);
在QML文件的某个地方,我尝试将JavaScript数组传回C++;
function sendValue() {
var arr = [];
arr["key"] = "value";
Config.sendValue(arr);
}
但是什么也没有发生。在C++
中,map.size()
返回0。可能需要进行一些额外的转换吗?