2014-06-23 6 views
4

내 앱에는 QML에 대한 싱글 톤으로 등록한 클래스가 있습니다. 내 목적은 연관 배열로 QML의 값을 수집하고이 배열을 C++에 전달하는 것입니다. 내가 싱글 톤 클래스의 인스턴스를 등록QML - Javascript 연관 배열을 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(); 
    } 
} 

여기 :이 클래스의 단순화 된 버전입니다 내가 C로 다시 자바 스크립트 배열을 전달하려고 QML 파일에 어떤 장소에서

qmlRegisterSingletonType<Config>("myNS", 1, 0, "Config", config_singletontype_provider); 

++ ;

function sendValue() { 
    var arr = []; 
    arr["key"] = "value"; 
    Config.sendValue(arr);  
} 

하지만 아무 것도 전달되지 않았습니다. C++에있는 map.size()은 0을 반환합니다. 추가 변환이 필요할 수 있습니까?

답변

4

좋아, 나는 문서는 분명하지 않다) 내 자신의 질문에 대답하지만, 내가 이해, QtQVariantList에 JS 배열을 변환하고 JS 그래서 내 경우에는 내가 단지를 만들 필요가 QVariantMap에 반대 배열이 아닌 객체 :

var arr = {};