使用wxpython进行双缓冲

2024-10-01 13:30:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用wxpython开发一个多平台应用程序,当我在面板上绘图时,我在windows上出现了闪烁的问题。 我以前常在缓冲区画画(wx.位图)在鼠标移动事件中,我的OnPaint方法由在线组成:

dc = wx.BufferedPaintDC(self, self.buffer)

相当标准,但我在Windows上还是有闪现的问题,而在Linux上一切正常。在

我解决了我的问题在__init__方法中调用SetDoubleBuffered(True)。在

奇怪的是,现在即使我不再使用BufferedPaintDC,一切都能正常工作。我改变了我的应用程序,这样所有的绘图部分都是在OnPaint方法下完成的。我不使用缓冲区,直接在wx.PaintDC公司一点问题都没有。在

所以我的问题是:BufferedPaintDC完全没用吗?或者以某种方式弃用?我是《wxpythoninaction》(2006)一书的所有者,它甚至没有提到SetDoubleBuffered


Tags: 方法self应用程序面板绘图windowswxpython平台
1条回答
网友
1楼 · 发布于 2024-10-01 13:30:19

很有可能SetDoubleBuffered实际上使您的面板自动使用缓冲的dc,文档中没有提到这些类是不推荐使用的(如果是这样的话,我想他们会这样做的)。在

关于wxPython的行动。。。2006年是很久以前的事了。。。可能当时还不存在SetDoubleBuffered方法,或者作者想展示底层的工作原理。在

相关问题 更多 >