我有一个计时器,当时间等于某个时间,即。 5秒,10秒,12秒。我希望它能做点什么。
持续检查计时器值以查看它是否与我的值匹配的最佳方法是什么?
答案 0 :(得分:1)
轮询QTime的时间是一个坏主意。您有QTimer,它使用您平台的硬件计时器功能。将单次拍摄QTimer设置为5秒。将其timeout()信号连接到一个插槽,然后在该插槽中重新编程QTimer以用于下一个间隔。一般的概念是:
int intervals[] = {5000, 10000, 12000};
// Alternative:
// int intervals[] = {5000, 5000, 2000};
int currentInterval = 0;
QTimer timer; // Make sure you set this up a single-shot timer.
// ...
// slot
void handleTimeout()
{
++currentInterval;
// You should probably use a QList<int> instead in your real code and query size().
if (currentInterval >= sizeof(intervals) / sizeof(intervals[0])) {
// We're done.
return;
}
timer.start(intervals[currentInterval] - intervals[currentInterval - 1]);
// Alternative:
// timer.start(intervals[currentInterval]);
}