QQmlListProperty 与 QAbstractListModel
QQmlListProperty vs QAbstractListModel
我想了解人们会如何选择是使用 QAbstractListModel
还是 QObject
和 QQmlListProperty
。
考虑到 QQmlListProperty
处理必须使用 QAbstractListModel
编写的 "roles" 功能,这似乎是一条不那么乏味的路线。
我不知道大多数人建议使用 QAbstractListModel
是因为它已经存在了很长时间,还是出于某种原因它是更好的选择。
我也找不到关于这两个选项之间权衡的任何讨论。这个问题是在讨论 QAbstractListModel
的 Qt 开发人员日谈话中提出的,但答案是 "that would also work"。
模型实现通常会更有效地处理视图。当您公开 "dumb list" 以使用模型时,每次模型更改时都会重建整个视图,而对于模型,仅更新更改。如果您有很多项目,将会有明显的性能开销。
您可以将列表用于模型,也可以将模型用于列表,但是当您想要获得最佳性能时,您应该将列表用于列表,将模型用于模型。
我想了解人们会如何选择是使用 QAbstractListModel
还是 QObject
和 QQmlListProperty
。
考虑到 QQmlListProperty
处理必须使用 QAbstractListModel
编写的 "roles" 功能,这似乎是一条不那么乏味的路线。
我不知道大多数人建议使用 QAbstractListModel
是因为它已经存在了很长时间,还是出于某种原因它是更好的选择。
我也找不到关于这两个选项之间权衡的任何讨论。这个问题是在讨论 QAbstractListModel
的 Qt 开发人员日谈话中提出的,但答案是 "that would also work"。
模型实现通常会更有效地处理视图。当您公开 "dumb list" 以使用模型时,每次模型更改时都会重建整个视图,而对于模型,仅更新更改。如果您有很多项目,将会有明显的性能开销。
您可以将列表用于模型,也可以将模型用于列表,但是当您想要获得最佳性能时,您应该将列表用于列表,将模型用于模型。