Sto lavorando a un'applicazione multipiattaforma con wxpython e ho avuto problemi di sfarfallio su Windows, mentre disegnavo su un pannello. ho usato per disegnare su un buffer (wx.Bitmap) durante gli eventi movimenti del mouse e il mio metodo OnPaint era composto da solo on line:Double buffering con wxpython
dc = wx.BufferedPaintDC(self, self.buffer)
piuttosto standard, ma ancora non avevo sfarfallio problemi su Windows, mentre tutto ha funzionato bene su Linux.
I risolto il mio problema chiamando SetDoubleBuffered(True)
nel metodo __init__
.
La cosa strana è che ora tutto funziona anche se non uso più BufferedPaintDC. Ho cambiato la mia applicazione in modo che tutta la parte del disegno sia fatta nel metodo OnPaint. Non utilizzo un buffer e il disegno viene eseguito direttamente su un wx.PaintDC senza alcun problema di sfarfallio.
Quindi la mia domanda è: BufferedPaintDC è totalmente inutile? O in qualche modo deprecato? Sono proprietario del libro "WxPython in Action" (2006) e non menziona nemmeno SetDoubleBuffered