0

问题基本上是标题,但更详细:

我已经对 进行了子类化QAbstractListModel,我们来命名它myModel。我正在myModel用 c++ 代码创建内容,然后将其输入到ListViewQML 中。我的代码myModel在 C++ 代码中进行了修改,我可以立即在我的 中看到修改ListView,这很好。我的问题是,ListView当底层模型更改(如添加项目)或仅绘制新项目时,是否会重绘所有元素?

4

2 回答 2

1

这取决于您模型发出的信号,如果您只是覆盖一些受保护的方法,其中一些可能并不明显。请参阅 QAbstractItemModel 类中的信号文档。

于 2016-03-04T12:05:14.667 回答
0

ListView委托下,我检查了多少次Component.onCompletedComponent.onDestruction打电话。结果是,当插入一个新项目时,Component.onCompleted它只被调用一次,而当一个项目被移除时,Component.onDestruction它只被调用一次,这意味着ListView在插入和移除项目时不会重绘整个列表!

于 2016-03-04T21:31:20.930 回答