如何优化QTableView的性能

如何优化QTableView的性能,第1张

1、手动设置定长的表头数据。比如表头可能出现的数据是1到100000,那么我们就以最长的为标准,不够长度的补空格。这样不用需要设置自适应,表格刷新和切换可以瞬间完成。但代价是表头很丑,在数据小时有大片空白2、使用当前最大的表头数据,仅对该数据用QFontMetrics计算宽度,然后对表头设置fixedWidth()。这样理论可行,然而实际很丑陋,调整宽度后多出来的部分只有QWidget底色,文本信息并没有绘制上去,导致表头文本显示不完全,且表头效果绘制错误。然后尝试搜索了"QTableView VerticalHeader width"关键字之后,在Qt论坛搜到一篇帖子,里面给了一个脑洞清奇的解法——设置表头宽度后,将首列宽度设置为0,再重置,即代码如下:ui->tableView->verticalHeader()->setFixedWidth(width);

width = ui->tableView->columnWidth(0);

ui->tableView->setColumnWidth(0, 0);

ui->tableView->setColumnWidth(0, width);

上述代码,会导致表格布局改变,从而触发表格的全局重绘,在这次重绘里,重设宽度过后的表头也能正常显示了。由于所有column和表头都没有设置自适应,所以这个重绘效率很高。最后profile结果如下: - 在设置自适应后,表格刷新耗时10ms内。但若要重新适配表头,则需要耗时10s左右。 - 关闭自适应,通过手动设置fixedWidth方式适配表头,数据刷新加适配表头,总体耗时不超过20ms。

如果你的页眉中没有除页码外需要设置的东西,

可以在页眉中的右侧设置自动页码,

然后调节页码在页面中的上下位置,

使得页码恰好落在表头中要标注页码的位置,

需要在页面预览中(单击页边距,显示出页边距的虚线)细调。

创建QSqlQueryModel 保存表数据库的表,model就显示在控件中(QTableView->setModel()),

选中表中的项,可以得到当前行数,也就可以获得当前数据,最后lineEdit->setText(xx);

以上就是关于如何优化QTableView的性能全部的内容,包括:如何优化QTableView的性能、QTableView中垂直方向表头的Item对象为空,就是自动递增的123列,怎么设置背景色求大神、qt实现选中数据库中的一个数据。使其确认显示到lineEdit中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9799407.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存