我想用QAbstractListModel
来填充一个带有地图元素(如MapCircle,...)的Qml地图。似乎有两个适合于此的Qml工具,MapItemView
[1]和Repeater
[2]。 Repeater
更强大(例如它允许嵌套模型) - 那么是否有任何理由使用MapItemView
而不是Repeater
?Qt/Qml:Repeater与MapItemView的地图元素
问候,
[1] http://doc.qt.io/qt-5/qml-qtlocation-mapitemview.html
[2] http://doc.qt.io/qt-5/qml-qtquick-repeater.html
MapItemView源:http://code.qt.io/cgit/qt/qtlocation.git/tree/src/location/declarativemaps/qdeclarativegeomapitemview.cpp
中继器源:http://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/items/qquickrepeater.cpp
很难从文档中判断,但在大多数情况下,'Views'只是根据需要实例化。因此,“视口”之外的内容不会混淆你的记忆,初始创建时间会更好。 'Repeater'是转储。它会为模型中的每个元素创建'Items',无论它们是否被显示。 – derM
好点。我检查了源代码:''MapItemView''将所有项目添加到地图。我不确定什么''Repeater''准确地做,但可能它也会将这些项目添加到地图。地图本身处理可见项目渲染。 – Hyndrix