首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更新QGLWidget -事件或信号/插槽?

更新QGLWidget -事件或信号/插槽?
EN

Stack Overflow用户
提问于 2011-09-11 00:17:07
回答 2查看 684关注 0票数 0

我需要用非常精确的时间(毫秒的顺序)刷新一些图像,为此我开发了QGLwidget的一个子类。图像在初始化时作为纹理加载。我正在使用一个QTimer实例来更改正在显示的图像。定时器的timeOut信号连接到一个timeOutSlot,它执行一些文件I/O,然后调用updateGL()。

虽然我知道事件处理程序用于外部事件,而信号/插槽用于图形用户界面内部的通信,但我也可以将其实现为timeOutEvent处理程序。

这两者之间有什么性能差异吗?任何超过2-3毫秒的性能损失对我来说都很重要(硬件一般,比如配备nVidia 8600M GT显卡的英特尔酷睿2双核T5700 )。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-11 01:30:01

我之所以说信号/槽,是因为事件被添加到事件队列中,其中Qt经常调用优化和重要性排序,而s/s则立即执行-尽管比直接调用慢。

票数 0
EN

Stack Overflow用户

发布于 2011-09-11 02:00:38

信号和槽大约比普通的旧函数调用慢10倍。但它们绝对不会慢到需要几毫秒的时间来处理。处理一个信号的时间大约是0.001毫秒(see slide 27)。

你说你需要一个非常精确的时间,那么你知道显示刷新率是如何影响绘图的吗?图像(通常)使用60 Hz刷新率绘制。图像之间的时间是16.7毫秒,所以这是你能得到的最大精度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7372964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档