QTableWidget性能优化
QTableWidget performance optimization
我有一个QTableWidget,可以显示大量的元素(如20000个元素)。显示本身和上下滚动可以找到,但是,填充小部件的工作速度非常慢。我发现,构造显示的元素(字符串)的QVector工作得非常快,但是,将元素插入QTableWidget非常慢。我需要实现对元素的过滤,所以如果用户使用通配符过滤掉一半的元素,仍然需要清理QTreeWidget并插入10000个元素(或者隐藏10000个元素,这同样很慢)。合理的快速性能在这里至关重要,因为用户不能每次按下按钮都等上几分钟。Valgrind没有多大帮助,因为很明显,很多资源被一些隐式调用的函数吃掉了,特别是QHeaderView::sectionSize()
和QHeaderView::isSectionHidden()
将代码迁移到模型-视图模式
- 创建一个模型(子类
QStandardItemModel
)并将所有数据放在那里。 - 显示
QTableView
中的所有数据,确保一切正常 - 现在,您可以使用
QSortFilterModel
模型进行快速数据过滤,或者您可以子类化QProxyModel来进行更复杂的过滤。
相关文章:
- 面向数据的设计;如何在 C++ 中优化数据结构以提高性能?
- C++分离功能,实现性能优化
- C++14 通过引用返回一个值以优化性能
- 优化时间性能Unordered_map C
- 从编译器优化和代码性能的角度来看,"if constexpr"与"if"
- C++按字符串调用函数,比较PHP的性能,如何在C++中优化代码
- 尾部调用优化似乎略微降低了性能
- C++优化级别是否会影响Swig Python模块的性能
- 如何优化C 对象I/O操作的性能
- 对于高度优化的矩阵多应用程序代码,MSVC和GCC之间的性能差异
- 为什么asm中的这种差异对性能很重要(在未优化的ptr++与++ptr循环中)
- 内存对齐优化不仅性能,而且内存大小
- 使用 CUDA 中的不同块和线程进行性能优化
- FAT,在检索文件时优化性能
- 用于优化性能的C++虚拟机
- 优化与零的简单比较以提高性能
- 用于循环性能差异和编译器优化
- QTableWidget性能优化
- 优化栈遍历性能
- 优化性能,同时减少模板的使用