注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

qt5: QTableWidget性能优化的一些想法  

2014-09-03 10:32:50|  分类: vc界面编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
QTableWidget性能优化的一些想法,未尝试。

        qt的一些默认规则,比如:按钮的pressed等信号响应中,不能弹窗,否则因为这个按钮的焦点状态未被消除,导致弹窗的控件无法激活焦点,等等。这些规则只能遵从,此前多次遇到。
        此外,QTableWidget的性能相对较低。而需求往往会倾向于表格式的展示,每个单元的控件又较为复杂,QTableWidget是一个非常不错的选择。
        那么,QTableWidget为什么会较慢呢?分析后发现,对于一个复杂的cell widget,debug模式下,qt花费了几十毫秒的时间创建控件,随后,对控件的setStyleSheet会花费更多的时间,而setCellWidget之类的函数也会花费时间(主要是显示控件和布局调整等)。
        最大的瓶颈是setStyleSheet,如果优化好,则可以将速度提高一倍。第一个设想是,修改qt的style sheet相关代码,禁止控件继承父类的qss,加速qss的解析。
        其次,尽量减少复杂控件的过早创建。将不需要立即显示的控件,或者在特定情况下才显示的控件,放在需要显示的时候创建。这样可以减少控件创建所需的时间。这部分,还需要继续分析。
        另外,就是setCellWidget,分析结果表明,这部分耗时相对固定,debug模式下大约30ms一个Item。一种可行的优化方案就是,尽量避免insertItem,而是setRowCount这样的函数去预先设定Item数量。其他优化方案待继续分析。

By:zhanyonhu
  评论这张
 
阅读(594)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016