2012-04-08 62 views
0

首先,我對Qt相當陌生。我確實在尋找答案,但沒有發現任何類似於我的問題。我使用的超時每50ms定時器和計算動畫時間Qt

connect(timer,SIGNAL(timeout()),scene,SLOT(advance())); 

動畫盤旋矩形(我自己的類來繪製矩形,每個advance被調用時改變其座標),直到它在QGraphicsView了一整圈。

有什麼方法可以測量動畫完成所花費的時間嗎?基本上,我按下按鈕,動畫開始,矩形完成圓圈,我需要輸出它花費的時間。我知道我可以使用QTime來計算時間,但我不明白在哪裏放置它,因爲它使用信號插槽機制和計時器。謝謝。

回答

1

如果我正確理解您的問題,並且您只是試圖測量繪製動畫的時間,而不是繪製動畫的時間,那麼您的任務非常簡單。

如果定時器每隔50毫秒超時,那麼如果您計算您爲動畫繪製所需的步驟數,並將其乘以50ms,那麼您就有完整的時間。

如果您的advance()函數每次按照固定的弧度量步進,那麼您不需要計算任何東西。你事先知道需要多少時間。它可以很容易地計算爲這樣:

t = StepTime * (2 * pi)/StepAngle 

如果步距角爲以弧度爲單位,或可替代地

t = StepTime * (360)/StepAngle 

如果步距角以度爲單位。

+0

感謝您的回覆!我確實需要實際的時間,因爲我試圖比較它在不同PC上的表現(只是我被要求做一個任務的一部分)。據我瞭解,由於我選擇實現動畫的方法,時間將會非常接近(我猜這樣做對我的情況有更好的方式,但這種方法似乎是最簡單的)米甚至不知道我怎麼能得到那些時間。 – Urdak 2012-04-08 15:03:41

+0

http://doc.qt.nokia.com/4.7-snapshot/qtestlib-tutorial5.html;) – Castilho 2012-04-08 17:16:06