QQmlListProperty 与 QAbstractListModel

QQmlListProperty vs QAbstractListModel

我想了解人们会如何选择是使用 QAbstractListModel 还是 QObjectQQmlListProperty

考虑到 QQmlListProperty 处理必须使用 QAbstractListModel 编写的 "roles" 功能,这似乎是一条不那么乏味的路线。

我不知道大多数人建议使用 QAbstractListModel 是因为它已经存在了很长时间,还是出于某种原因它是更好的选择。

我也找不到关于这两个选项之间权衡的任何讨论。这个问题是在讨论 QAbstractListModel 的 Qt 开发人员日谈话中提出的,但答案是 "that would also work"。

模型实现通常会更有效地处理视图。当您公开 "dumb list" 以使用模型时,每次模型更改时都会重建整个视图,而对于模型,仅更新更改。如果您有很多项目,将会有明显的性能开销。

您可以将列表用于模型,也可以将模型用于列表,但是当您想要获得最佳性能时,您应该将列表用于列表,将模型用于模型。