Я работаю над многоплатформенным приложением с помощью wxpython, и у меня были проблемы с проблесками в окнах, а на панели - панель. Раньше я рисовал буфер (wx.Bitmap) во время событий движения мыши, а мой метод OnPaint состоял только из строки:
dc = wx.BufferedPaintDC(self, self.buffer)
Довольно стандартный, но все же у меня были проблескивающие проблемы в Windows, в то время как все отлично работало в Linux.
I решил мою проблему, вызвав SetDoubleBuffered(True)
в методе __init__
.
Странно, что теперь все работает, даже если я больше не использую BufferedPaintDC. Я изменил свое приложение так, чтобы вся часть чертежа была сделана в методе OnPaint. Я не использую буфер, а чертеж выполняется непосредственно на wx.PaintDC без каких-либо мерцающих проблем.
Итак, мой вопрос: BufferedPaintDC абсолютно бесполезен? Или как-то не рекомендуется? Я являюсь владельцем книги "WxPython in Action" (2006) и даже не упоминает SetDoubleBuffered