0

wxWidgetsを使用して、625x26329ピクセルの大きなフローチャートを描画しています。プログラムはQtからwxWidgetsに転送されました。カスタマイズされたスクロールウィンドウを内部に持つメインフレームでレイアウトが簡単です。スクロールウィンドウは、更新されたクライアントリージョン内で毎回チャートの一部を描画します。

現在、QtとwxWidgetsは大きな違いを生んでいます。マウスを回転させて垂直方向にスクロールすると、Qtはグラフの描画を非常にスムーズに更新しますが、wxWidgetsはゆっくりとちらつきます。

効率的に絵を描く方法を教えてもらえますか?

4

1 に答える 1

1

確かに遅いですか?私は不思議に思うでしょう、私は別の経験に遭遇しました.

あなたはちらつきに言及しています。ちらつきは、ほとんどの場合、リフレッシュ コールが多すぎることが原因です。これを防ぐには、ダブル バッファリングを使用する必要があり、これが重要です。

ダブルバッファリングとは、画面外のすべてのものを画像/ビットマップに描画し、すべてが描画された後に画像/ビットマップが完全に描画されることを意味します (これは非常に高速に行われるため、ちらつきはありません:)! )。

Qt は、デフォルトのダブル バッファリングに使用します。そのため、いつでも滑らかに見えます。ただし、このアプローチの欠点は、パフォーマンスを消費することです。wxWidgets はそれに縛られません。代わりに、ダブルバッファリングを取得するのはあなたの仕事です。

また、描画している領域をクリッピングしていないかどうかも確認する必要があります。wxWidgets を使用して Windows でクリッピングすると、パフォーマンスが大幅に向上しました。

PS: はい、古い質問ですが、事実がどうであるかを知る必要があると思います。

于 2017-01-06T12:53:26.087 に答える