在薄荷的Linux 12使用Qt4.8,我实现了包含一个简单的窗口QTableView
显示模型的内容。 模型数据是不断更新(日志消息)和dataChanged()
信号被发射定期(即每100毫秒)。
我看到的问题是口吃在桌子上的视觉更新。
我安装计数窗口上的事件过滤器updateRequest
型事件,它应该触发一个widget重绘(也子部件,即tableView
)。 这些都与他们和90毫秒的〜个标准差之间170ms的〜的平均时间(这是相当大的,我猜)。 然而,感知的视觉更新率只有两三次,第二,我不知道为什么。 这似乎并不是所有的updateRequest
事件触发控件重绘或窗口系统燕子视觉更新。
作为第二次测试,我强迫窗口通过调用来更新自身repaint
或update
每100ms。 使用repaint
,我看到相应增加updateRequest
型事件和空白的标准偏差的减少; 与update
,数量并没有增加。 然而,只有在两种情况下感知的更新速度的适度增长。
另外:有没有衡量多久一个小部件居然真的重新粉刷,而无需超载它的一个好方法paintEvent
处理程序? 也许从什么QTest
?
更新:我伸出我的事件过滤器也搭上paintEvent
型事件。 目前只有那些与> 1000的一个位数字updateRequest
型事件。