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只是为了使输出更具可读性,它不是我的解决方案的一部分。