我想paintEvent()被稱爲每秒60次移動一個小的小部件內的幾個對象。 Widget類似於Chrome瀏覽器的選項卡:當您將選項卡拖動到遠離其位置的位置時,它將向後移動,從而在到達其位置時降低速度。QTimer動畫在QT
我使用QTimer連接到一個插槽,我重新計算一些幾何參數,然後調用update()使qt主循環調用paintEvent(),在那裏繪製一些行和QPixmaps。
但設置爲1/60秒間隔的兩個QTimer對象正在消耗「Core i5 2500K」CPU的10%。 2個計時器的CPU時間不是每次60個刻度? CPU時間的情況是相同的,如果我刪除插槽()QTimer連接到(除「return;」語句)的所有代碼。
我認爲,你的'QApplication :: exec()'循環非常緊密。 '1/60 s = 17 ms',兩個定時器在這些時間間隔最多觸發一次會在兩次事件之間產生差異,大約8ms ...每8ms有一個事件。我會說10%的CPU消耗並不是那麼糟......我甚至不確定你能從_Qt_消息處理系統獲得這樣的分辨率。我建議至少將這些定時器移動到與主GUI線程分開的線程中。 – lapk 2013-04-23 22:52:16