tableview 中的 QML 排序非常慢

QML sorting in tableview is very slowly

我使用 QML TableView + 自己的 QAbstractTableModel 和 QSortFilterProxyModel。我已经实现了排序,但速度很慢。我在没有 QML 的情况下使用了这些模型,但是使用了 QTableView - 它工作得很好。 30 000 个项目排序不到 1 秒。 有人可以帮忙吗?问题出在哪里?

我假设 QML 在模型排序数据时(在每次迭代中)重新绘制所有项目。我找到了解决方案,要进行排序,您必须:

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

例如

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

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