Tôi đang làm việc trên một ứng dụng đa nền tảng với wxpython và tôi đã gặp sự cố nhấp nháy trên cửa sổ, trong khi vẽ trên Bảng điều khiển. tôi đã sử dụng để vẽ trên một bộ đệm (wx.Bitmap) trong quá trình chuyển động chuột sự kiện và phương thức OnPaint của tôi được sáng tác chỉ trên đường dây:Bộ đệm đôi với wxpython
dc = wx.BufferedPaintDC(self, self.buffer)
Khá tiêu chuẩn nhưng vẫn tôi đã nhấp nháy vấn đề trên Windows, trong khi tất cả mọi thứ đã làm việc tốt trên Linux.
Tôi giải quyết được sự cố của mình gọi SetDoubleBuffered(True)
theo phương thức __init__
.
Điều kỳ lạ là bây giờ mọi thứ hoạt động ngay cả khi tôi không sử dụng BufferedPaintDC nữa. Tôi đã thay đổi ứng dụng của mình sao cho tất cả phần vẽ được thực hiện theo phương pháp OnPaint. Tôi không sử dụng một bộ đệm và bản vẽ được thực hiện trực tiếp trên một wx.PaintDC không có vấn đề nhấp nháy ở tất cả.
Vì vậy, câu hỏi của tôi là: BufferedPaintDC hoàn toàn vô dụng? Hoặc không được chấp nhận bằng cách nào đó? Tôi là chủ sở hữu của cuốn sách "WxPython in Action" (2006) và thậm chí nó không đề cập đến SetDoubleBuffered