qt - QQmlListProperty 与 QAbstractListModel

标签 qt qml qabstractlistmodel

我试图了解人们如何选择使用 QAbstractListModel 还是 QObjectQQmlListProperty

鉴于 QQmlListProperty 处理必须使用 QAbstractListModel 编写的“角色”功能,这似乎是一个不太繁琐的路线。

我无法判断大多数人建议使用 QAbstractListModel 是否只是因为它已经存在了更长时间,或者出于某种原因它是否是更好的选择。

我也找不到任何关于这两个选项之间权衡的讨论。这个问题是在 Qt 开发者日讨论 QAbstractListModel 的演讲中提出的,但答案是“这也可以”。

最佳答案

模型实现与 View 一起使用通常会更有效。当您公开“哑列表”以使用模型时,每次模型更改时都会重建整个 View ,而使用模型时仅更新更改。如果您有很多项目,则会产生明显的性能开销。

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

关于qt - QQmlListProperty 与 QAbstractListModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29567226/

相关文章:

qt - 当Repeater的代理高度改变时调整ColumnLayout

qml - 从 QML 访问嵌套的 QAbstractListModel

c++ - 如何将小部件添加到预先存在的 QLayout?

MySQL + Qt QMYSQL 插件 = 商业 MySQL 许可证?

c++ - Qt 在 ItemDelegate 之外访问模型数据

c++ - QAbstractListModel::Data() 方法从未被调用

c++ - 如果使用 'this' 创建(新建)Qt 对象需要删除还是自动删除?

qt - 如何用QPainter::drawPolyLine绘制圆角

c++ - 默认情况下,从工作线程发出 Qt::signal 会使 UI 在主线程上更新?