假設我有一個簡單的 QMap 宣告并使用 C 中的值初始化并正確暴露給 QML。
C
QMap<QString, QMap<QString, QString>> airflow_buttons_;
//simple getter
[[nodiscard]] QMap<QString, QMap<QString, QString>> airflow_buttons() const;
QML
console.log(ClimateModel.airflow_buttons);
列印以下內容
(qrc:/Climate/AirflowButtons.qml:24) - QVariant(QMap<QString,QMap<QString,QString>>, QMap(("left", QMap(("top_air", "NOT_ACTIVE")))))
它給了我一個QVariant。我不知道如何將其轉換為具有所需值的所需地圖?
我想將它用作一個簡單的 JavaScript 地圖。
console.log(ClimateModel.airflow_buttons["left"]["top_air"]); //Should print "NOT_ACTIVE"
console.log(ClimateModel.airflow_buttons["left"]); //Should print the Map contents
當前的錯誤資訊是[debug] expression for onCompleted (qrc:/Climate/AirflowButtons.qml:24) - undefined
我想用純 Javascript 實作的示例
var myMap = {x: "Test", y: "Test 2"};
myMap["z"] = "Test 3";
console.log(myMap["z"]); //prints "Test 3"
console.log(JSON.stringify(myMap["z"])); //prints the map contents
我怎樣才能完成這個微不足道的任務?
uj5u.com熱心網友回復:
您應該一直使用 QVariantMap :
QVariantMap airflow_buttons = {
{"left", QVariantMap{
{"top_air", "NOT ACTIVE"}}}
};
順便說一句,在 QML 中,如果您愿意,您也可以這樣做:
console.log(ClimateModel.airflow_buttons.left.top_air)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/513275.html
