2009-02-24 5 views
10

私はwxpythonを使ってマルチプラットフォームアプリケーションを開発していますが、Panel上で描画している間はウィンドウ上で点滅する問題がありました。 私は、マウスの動きイベント中バッファー(wx.Bitmap)上に描画するために使用し、私のOnPaintメソッドはちょうどライン上で構成されていた:wxpythonを使ったダブルバッファリング

dc = wx.BufferedPaintDC(self, self.buffer) 

かなり標準が、すべてがうまく働いている間、まだ私は、Windows上の問題がちらつきましたLinuxで。

__init__の方法を呼び出します。

私がもうBufferedPaintDCを使用しなくても、今やすべてが機能するということです。すべての描画部分がOnPaintメソッドで行われるようにアプリケーションを変更しました。私はバッファを使用せず、描画はwx.PaintDC上で直接行われ、ちらつきの問題はまったくありません。

私の質問です:BufferedPaintDCは全く役に立たないのですか?または何とか廃止されましたか?私は "WxPython in Action"(2006年)という本の所有者であり、SetDoubleBufferedについても言及していません。

答えて

5

SetDoubleBufferedは実際にあなたのパネルが実際にバッファされたDCを自動的に使用する可能性が高く、これらのクラスは廃止されていることに言及しています(そして、そうであればそうすると思います)。

wxPythonの動作について... 2006年は長い間前です...当時、SetDoubleBufferedメソッドが存在しなかったか、作者が下位レベルでの動作の仕方を示したかった可能性があります。

関連する問題