qTime,检查计时器的值?

时间:2012-12-01 14:49:59

标签: qt

我有一个计时器,当时间等于某个时间,即。 5秒,10秒,12秒。我希望它能做点什么。

持续检查计时器值以查看它是否与我的值匹配的最佳方法是什么?

1 个答案:

答案 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]);
}