- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要每1毫秒触发一次计时器。 This文档报告,该插槽调用可能比虚拟函数调用要慢得多。
但是,如果我们将信号/插槽与事件发生进行比较,哪种机制会更快,更有效并且产生的开销更少:将QTimer
与timeout()
信号连接到插槽,或者将裸QObject::startTimer()
\QObject::killTimer()
与QObject::timerEvent()
连接起来?
对于Windows和Linux,以上问题的答案是否相同?
最佳答案
QTimer
实际上只是QObject::startTimer()
功能的信号槽包装器,因此在所有平台上无疑会有更多开销(它在内部实现QObject::timerEvent()
-此功能的实现只是发出timeout()
信号)。
值得注意的是,QBasicTimer
是围绕QObject::startTimer()
功能的轻量级包装。如果使用QBasicTimer
,您仍然必须实现QObject::timerEvent()
,但是它将为您管理计时器ID。这样,QBasicTimer
结合了QTimer
的一些易用性和QObject::startTimer()
机制的使用效率。
关于Qtimer vs timerEvent-它们哪个产生的开销更少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12628343/
我需要每1毫秒触发一次计时器。 This文档报告,该插槽调用可能比虚拟函数调用要慢得多。 但是,如果我们将信号/插槽与事件发生进行比较,哪种机制会更快,更有效并且产生的开销更少:将QTimer与tim
意图 我编写了一个 VTK 应用程序,它使用 vtkPoints > vtkPolyLine > vtkPolyData > vtkPolyDataMapper 生成螺旋并显示它。如果在程序初始化时静
我的 QT 应用程序依赖于 TimerEvent (startTimer/killTimer) 来动画 GUI 组件。然而,最近,我在我的 Mac 笔记本电脑上编译并运行了我的应用程序(与我开发时所用
问题 我在调试应用程序的 timerEvent 函数时遇到困难。虽然应用程序能够运行,但如果我在如下所示的简单内容中设置断点,我会收到一条错误消息,指出:“gdb 进程已崩溃。” void MyCla
我正在尝试在 AS3/Flex 4 中编写一个简单的游戏,并且我正在尝试从一开始就找到处理代码定时执行的最佳方法。 最自然的方法是在整个程序中使用一堆 Timer 对象。然而,与 ENTER_FRAM
我的这个函数是 qtdlg.cpp 的一部分。这是这个类的构造函数: qtdlg::qtdlg() { timer1.start(100, this); // 100 msec updatin
我是一名优秀的程序员,十分优秀!