Pracuję na wieloplatformowej aplikacji z wxpython i miałem migotanie problemów w oknach, podczas rysowania na panelu. użyłem do rysowania na buforze (wx.Bitmap) podczas ruchami myszy wydarzeń i moja metoda OnPaint składała się z zaledwie na linii:Podwójne buforowanie z wxpythonem
dc = wx.BufferedPaintDC(self, self.buffer)
dość standardowy, ale wciąż miałem migotanie problemów w systemie Windows, podczas gdy wszystko działało w porządku w systemie Linux.
I rozwiązałem mój problem dzwoniąc pod numer SetDoubleBuffered(True)
w metodzie .
Dziwne jest to, że teraz wszystko działa, nawet jeśli nie używam już BufferedPaintDC. Zmieniłem aplikację tak, aby cała część rysunkowa została wykonana w metodzie OnPaint. Nie używam bufora, a rysowanie odbywa się bezpośrednio na wx.PaintDC bez żadnych problemów z migotaniem.
Moje pytanie brzmi: czy BufferedPaintDC jest całkowicie bezużyteczny? Lub w jakiś sposób przestarzałe? Jestem właścicielem książki "WxPython in Action" (2006) i nawet nie wspomniałem SetDoubleBuffered