QML 中的 QMap 数据类型
QMap datatype in QML
我正在使用 Qt 5.9.4 开源。有没有类似于QMap的QML类型?
目前我正在使用 C++,它持有一个 QMap。使用 Q_INVOKABLE 方法,在 QML 代码中从 QMap 中检索信息。
问题:
当我在 QML 中从 C++ 检索数据时,这会产生任何性能问题吗?有什么方法可以在 QML 本身中拥有地图数据类型?
如果您将 QMap 设为 QProperty,您将能够直接从 qml 访问它。就任何性能而言,本文档很好地涵盖了与 QProperties 相关的内容。 https://doc.qt.io/qt-5/qtquick-performance.html
您可以简单地使用 JavaScript 对象 - 它们接近 maps/dictionaries,例如:
var myMap = {x: "Test", y: "Test 2"};
myMap["z"] = "Test 3"
console.log(JSON.stringify(myMap))
输出{"x":"Test","y":"Test 2","z":"Test 3"}
.
注意:JSON.stringify
只是为了使输出更具可读性,它不是我的解决方案的一部分。
我正在使用 Qt 5.9.4 开源。有没有类似于QMap的QML类型? 目前我正在使用 C++,它持有一个 QMap。使用 Q_INVOKABLE 方法,在 QML 代码中从 QMap 中检索信息。
问题:
当我在 QML 中从 C++ 检索数据时,这会产生任何性能问题吗?有什么方法可以在 QML 本身中拥有地图数据类型?
如果您将 QMap 设为 QProperty,您将能够直接从 qml 访问它。就任何性能而言,本文档很好地涵盖了与 QProperties 相关的内容。 https://doc.qt.io/qt-5/qtquick-performance.html
您可以简单地使用 JavaScript 对象 - 它们接近 maps/dictionaries,例如:
var myMap = {x: "Test", y: "Test 2"};
myMap["z"] = "Test 3"
console.log(JSON.stringify(myMap))
输出{"x":"Test","y":"Test 2","z":"Test 3"}
.
注意:JSON.stringify
只是为了使输出更具可读性,它不是我的解决方案的一部分。