QTimer和活动状态

时间:2013-07-11 09:28:01

标签: c++ visual-studio-2010 qt timer

以下是我的情况:

我已经连接了以下内容:

connect(timer, SIGNAL(timeout()), this, SLOT(avg()));
timer->start(5000);

avg()的时间计算是1秒。所以我应该使用avg函数,平均值为5。

在avg()函数中,允许写入,而计时器处于活动状态时,它会像上面一样计算平均值:

do
{ 
... // Saving all values, within the 5 seconds of timer and averaging them

}
while **(timer->isActive())**;

我的问题/查询:是粗体字段(计时器 - > isActive())意味着循环将工作并进行处理,而计时器没有从固定的5秒超时?

1 个答案:

答案 0 :(得分:1)

不,您完全错误地使用QTimer。其目的不是测量时间,而是以指定的时间间隔调用插槽。例如,如果您拨打start,您的广告位将在5秒后被调用,之后将在5秒后再次调用,等等。isActive将始终为真,直到您拨打stop为止

QElapsedTimer对您的目的更有帮助。调用start初始化计时器。检查是否应使用timer.elapsed() >= 5000终止该过程。