实现自己的排序算法,而不是QSortFilterProxyModel



我有一个使用QSortFilterProxyModel的表。它还负责根据用户单击的特定列对元素进行排序。现在我发现,当表格显示大约10000个元素时,这是非常缓慢的,可能需要几秒钟的时间。整个过程是不可复制的,这取决于柱的预分类方式,可能需要更长的时间,但并非在所有情况下都可以。

QSortFilterProxyModel中的排序函数是一些非常奇怪的东西,映射中的部分被排序和打乱,等等……我不知道那里到底发生了什么。

因此,我的想法是创建一个自己的模型,它继承了QSortFilterProxyModel,但实现了自己的排序功能,就像QSortFilterProxy model一样,但以一种更有效的方式(STL排序的东西应该能完成这项工作,因为它对我的数据很快(。

所以我的问题是:我该怎么做?为了拥有自己的排序功能,我必须实现什么?或者有更好的方法来加速标准的QSortFilterProxyModel吗?

谢谢!

重新实现virtual QSortFilterProxyModel::sort()有什么问题?

注意,Qt实现已经使用STL(std::stable_sort()(来进行实际排序。排序的问题在于,您需要以某种方式获取排序项目的源索引。这让事情变得有点复杂。如果您没有任何级联的代理模型,那么映射是琐碎的,不会花费太多时间。

总结:我不认为,你会比Qt代码更快。

相关内容

  • 没有找到相关文章

最新更新