tableview中的QML排序非常缓慢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tableview中的QML排序非常缓慢相关的知识,希望对你有一定的参考价值。

我使用QML TableView +自己的QAbstractTableModel和QSortFilterProxyModel。我已经实现了排序,但它运行缓慢。我已经使用了没有QML的这些模型,但是使用QTableView - 它运行得很好。 30 000件商品的排序不到1秒。有人可以帮忙吗?哪里有问题?

答案

我认为QML重绘所有项目,而Model正在排序数据(在每次迭代中)。我找到了解决方案,你需要进行排序:

  1. 在QML中关闭模型
  2. 排序项目(使用模型)
  3. 返回模型。

例如

onSortIndicatorOrderChanged: {
    model = null
    MyModel.Sort(...)
    model = MyModel
}

更多细节https://forum.qt.io/topic/52026/solved-sorting-qml-tableview-is-slow/4

以上是关于tableview中的QML排序非常缓慢的主要内容,如果未能解决你的问题,请参考以下文章

QML如何通过单击列的标题对tableView进行排序

QML 为大量矩形设置动画时性能缓慢

片段android的缓慢创建

如何将 Qt 中的 SQL 查询输出模型分配给 QML 的 TableView?

Tableview 列自动调整

QML - TableView - 访问 headerDelegate 内的 TableViewColumn 属性