私は wxpython を使用してマルチプラットフォーム アプリケーションに取り組んでおり、パネルに描画しているときにウィンドウがちらつく問題がありました。以前は、マウス モーション イベント中にバッファ (wx.Bitmap) に描画していましたが、OnPaint メソッドは次の行だけで構成されていました。
dc = wx.BufferedPaintDC(self, self.buffer)
かなり標準的ですが、Windowsではちらつきの問題がありましたが、Linuxではすべて正常に機能しました。
メソッドを呼び出す問題を解決SetDoubleBuffered(True)
しました__init__
。
奇妙なことに、BufferedPaintDC を使用しなくてもすべてが機能するようになりました。すべての描画部分が OnPaint メソッドで行われるように、アプリケーションを変更しました。私はバッファを使用せず、描画は wx.PaintDC で直接行われ、ちらつきの問題はまったくありません。
だから私の質問は: BufferedPaintDC はまったく役に立たないのですか? それともどういうわけか非推奨ですか?私は本「WxPython in Action」(2006)の所有者であり、SetDoubleBufferedについても言及していません