2013-07-11 68 views
0

這裏是我的情況:QTimer和有效狀態

我已連接的是遵循:AVG的

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

的時間計算()爲1秒。所以我應該有平均值爲5的avg函數。

裏面的平均()函數,是它允許寫,而計時器是活動的,它計算平均像上面:

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

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

我的問題/查詢:是粗體字段(定時器 - > isActive ())意味着循環將工作並進行治療,同時計時器沒有從固定的5秒鐘超時?

+0

你的問題是什麼?這個問題似乎不完整。 –

+0

@Riateche請參閱編輯我已編輯的額外問題。 – MelMed

回答

0

不,你正在使用QTimer完全不正確。其目的不是測量時間,而是以指定的時間間隔呼叫時隙。例如,如果您撥打start,您的插槽將在5秒鐘後被調用,然後在5秒後再次調用,等等。isActive將始終爲真,直到您致電stop

QElapsedTimer對您的目的會更有幫助。致電start初始化定時器。檢查是否應該使用timer.elapsed() >= 5000終止程序。