Qt 部分更新中继器QML

Qt 部分更新中继器QML,qt,qml,qtquick2,Qt,Qml,Qtquick2,我在QML/C++项目中遇到了一个小问题。我用一个转发器在一个矩形内画点,这些点来自一个模型。这是我的密码: main.qml Rectangle { id: rect height:500 width:500 Repeater { id: pointsRepeater model: qListPoints Point { } } } QListPoT

我在QML/C++项目中遇到了一个小问题。我用一个转发器在一个矩形内画点,这些点来自一个模型。这是我的密码:

main.qml

Rectangle { 
      id: rect
      height:500
      width:500
      Repeater {
          id: pointsRepeater
          model: qListPoints
          Point {
          }
      }
}

QListPoT来自我的C++,我在这里写道:

Q_属性(QVariant qListPoints READ getListPoints NOTIFY listPointsChanged)

因此,基本上,当我添加或更新列表点时,我会发出listPointsChanged()并从列表中重新绘制新的或更新的点。我的问题是,当我向列表中添加点并发出listPointsChanged()时,所有点都会被重新绘制,这就像一个缓慢的选通效应。我只想重新绘制新的点。可能吗


提前谢谢。

我认为,如果您使用了一个适当的模型,例如,从中派生,那么只有您添加/更改/删除的点才会被重新绘制。您看到的问题可能与前面提到的问题相同:

注意:视图无法知道QList的内容已更改。如果QList发生更改,则需要通过再次调用QQmlContext::setContextProperty()重置模型

视图只知道属性已更改,但它不知道该模型中的任何特定项,因此它只是重新绘制所有内容


有关于此的更多信息。

qListPoints包含什么?它包含QList,QObject来自我的Point类。我将如何使用QabStructListModel从中继器中的Point.qml文件加载访问我的Point类属性。目前我使用MultDATA POX作为示例,它是否与QuastListMultMead一起工作?您应该能够通过C++模型中定义的角色名称访问属性:OK,谢谢兄弟。我将研究QabStretchListModel。保持联系。谢谢你的时间