我有一个计时器,当时间等于某个时间时,即。5秒、10秒、12秒。我想让它做点什么。
不断检查计时器值以查看它是否与我的值匹配的最佳方法是什么?
轮询 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]);
}