tableview 中的 QML 排序非常慢
QML sorting in tableview is very slowly
我使用 QML TableView + 自己的 QAbstractTableModel 和 QSortFilterProxyModel。我已经实现了排序,但速度很慢。我在没有 QML 的情况下使用了这些模型,但是使用了 QTableView - 它工作得很好。 30 000 个项目排序不到 1 秒。
有人可以帮忙吗?问题出在哪里?
我假设 QML 在模型排序数据时(在每次迭代中)重新绘制所有项目。我找到了解决方案,要进行排序,您必须:
- 在 QML 中关闭模型
- 排序项目(使用模型)
- Return背模。
例如
onSortIndicatorOrderChanged: {
model = null
MyModel.Sort(...)
model = MyModel
}
更多详情https://forum.qt.io/topic/52026/solved-sorting-qml-tableview-is-slow/4
我使用 QML TableView + 自己的 QAbstractTableModel 和 QSortFilterProxyModel。我已经实现了排序,但速度很慢。我在没有 QML 的情况下使用了这些模型,但是使用了 QTableView - 它工作得很好。 30 000 个项目排序不到 1 秒。 有人可以帮忙吗?问题出在哪里?
我假设 QML 在模型排序数据时(在每次迭代中)重新绘制所有项目。我找到了解决方案,要进行排序,您必须:
- 在 QML 中关闭模型
- 排序项目(使用模型)
- Return背模。
例如
onSortIndicatorOrderChanged: {
model = null
MyModel.Sort(...)
model = MyModel
}
更多详情https://forum.qt.io/topic/52026/solved-sorting-qml-tableview-is-slow/4