• 4625阅读
  • 9回复

[提问]Qt 事件队列调用时间 [复制链接]

上一主题 下一主题
离线兵317
 

只看楼主 倒序阅读 楼主  发表于: 2016-07-28
— 本帖被 XChinux 从 Qt 作品展 移动到本区(2016-07-28) —
如题,不知道大家可知道怎样缩小连续调用paintEvent时间,目前我的一个程序中的paintEvent中添加了打印时间语句,运行后两次时间相减既得这个事件队列调用该paintEvent的时间,因为要处理其他的事情,所以目前这个时间的消耗有点大,从网上搜寻说在paintEvent函数的最后面添加QWidget::paintEvent(event);可以优化缩短这个时间,但实际测了优化不是那么明显,就是不知道还有没有其他方式来实现?
离线never_forget

只看该作者 1楼 发表于: 2016-07-29
这么说楼主希望这个要函数的等待执行时间变短,开一个线程,定时器怎样 ?

离线兵317

只看该作者 2楼 发表于: 2016-07-29
回 never_forget 的帖子
never_forget:这么说楼主希望这个要函数的等待执行时间变短,开一个线程,定时器怎样 ?
 (2016-07-29 08:47) 

你的意思是什么时候调用一次paintEvent通过另一线程的定时器来控制?这个paintEvent不是由系统自己调用的吗?
离线never_forget

只看该作者 3楼 发表于: 2016-07-29
update()  ,    repaint() 啊。楼主可以主动请求吧。。。
离线stlcours

只看该作者 4楼 发表于: 2016-07-29
覆盖notify,截取paint事件,一部分放行,一部分扔掉
离线兵317

只看该作者 5楼 发表于: 2016-07-29
回 never_forget 的帖子
never_forget:update()  ,    repaint() 啊。楼主可以主动请求吧。。。 (2016-07-29 14:40) 

起初是update的,后来换成repaint试了,效果不明显,最多优化几毫秒。
离线兵317

只看该作者 6楼 发表于: 2016-07-29
回 stlcours 的帖子
stlcours:覆盖notify,截取paint事件,一部分放行,一部分扔掉 (2016-07-29 16:25) 

不是太明白,可否说的再详细些呢?
离线兵317

只看该作者 7楼 发表于: 2016-07-29
回 never_forget 的帖子
never_forget:update()  ,    repaint() 啊。楼主可以主动请求吧。。。 (2016-07-29 14:40) 

信号槽里调用这些是吧,嗯,可以试试,不过我现在将代码放在paintGL里面了,连续两次执行的时间从二十几毫秒到五十几毫秒都有,不像paintEvent那么固定
离线stlcours

只看该作者 8楼 发表于: 2016-07-29
回 兵317 的帖子
兵317:不是太明白,可否说的再详细些呢? (2016-07-29 17:30) 

http://blog.csdn.net/liang19890820/article/details/51932033
离线never_forget

只看该作者 9楼 发表于: 2016-08-04
回 兵317 的帖子
兵317:信号槽里调用这些是吧,嗯,可以试试,不过我现在将代码放在paintGL里面了,连续两次执行的时间从二十几毫秒到五十几毫秒都有,不像paintEvent那么固定 (2016-07-29 17:33) 

paintGL里面执行这个重绘反应较慢,原有的函数基本达不到理想的效果,楼主再试试底层一点的东西吧。。。
快速回复
限100 字节
 
上一个 下一个