【发布时间】:2018-04-04 08:03:44
【问题描述】:
我的 QT 应用程序依赖 TimerEvent (startTimer/killTimer) 来动画 GUI 组件。然而,最近,我在我的 Mac 笔记本电脑(而不是我正在开发的 Windows 台式电脑)上编译并运行了我的应用程序,发现现在所有东西的运行/更新速度似乎只有平时的一半。
应用程序没有滞后,只是看起来更新率比原来的频率低。我应该怎么做才能保证与所有平台上的应用程序的时序一致?
或者,我应该为临时计时器事件使用不同的功能吗?我不希望这样做,因为 TimerEvent 非常方便地将更新周期集成到小部件中,但如果它们提供一致的时间,我会感兴趣。
(上下文的基本示例代码):
// Once MyObject is created, counts to 20.
// The time taken is noticeably different on each platform though.
class MyObject: public QObject {
public:
MyObject() {
timerId = startTimer(60);
}
protected:
void timerEvent(QTimerEvent* event) {
qDebug() << (counter++);
if(counter == 20) {
killTimer(timerId);
}
Object::timerEvent(event);
}
private:
int timerId = -1, counter = 0;
}
【问题讨论】:
标签: c++ qt timer cross-platform qtimer