アニメーションイベントで長い絵を縦にスクロールするものを作成QPropertyAnimation
して接続しました。SonogramWidget
「長い画像」は、1024x128 の事前に計算された 100 個の QPixmap オブジェクトで構成され、垂直方向に次々と配置されます。で表示されましSonogramWidget::paintEvent()
たQPainter
。描画手順QPixmap
ウィジェットの高さと現在の垂直方向のオフセットを考慮して、一度にすべてをペイントするのではなく、それらのみを表示します。QPixmap
画像を表示する最速の方法であるため、CPU はほとんど無料です。100 個すべてQPixmaps
が事前に計算されてメモリに保存されるため、スクロール中に大きな計算はありません。
奇妙な効果が見られます: 脈動する動き: 1 秒に 2 回、画像全体がわずかにスピードアップし、通常の動きよりも 1..2 ピクセル速く動きます。Qt Animation Framework を単一の 60 fps QTimer に置き換えて、その SLOT で画像をスクロールすると、同じ効果が得られます。
ビデオ: http://www.youtube.com/watch?v=KRk_LNd7EBg#t=8 (00:08 から見てください。私の Firefox では、ビデオの再生自体にチョッピングが追加されています。Google Chrome では、ビデオの再生がはるかに優れています)。
Linux と Windows のビルドでも同じ効果が見られます。
解決策
私は問題を理解しました:「チョッピング」はバグではなく、機能でした!これは整数計算の機能であるため17
、16、16、16、16、16、16、16、16、16、16、16 17
、... .