我正在用wxpython开发一个多平台应用程序,当我在面板上绘图时,我在windows上出现了闪烁的问题。 我以前常在缓冲区画画(wx.位图)在鼠标移动事件中,我的OnPaint方法由在线组成:
dc = wx.BufferedPaintDC(self, self.buffer)
相当标准,但我在Windows上还是有闪现的问题,而在Linux上一切正常。在
我解决了我的问题在__init__
方法中调用SetDoubleBuffered(True)
。在
奇怪的是,现在即使我不再使用BufferedPaintDC,一切都能正常工作。我改变了我的应用程序,这样所有的绘图部分都是在OnPaint方法下完成的。我不使用缓冲区,直接在wx.PaintDC公司一点问题都没有。在
所以我的问题是:BufferedPaintDC完全没用吗?或者以某种方式弃用?我是《wxpythoninaction》(2006)一书的所有者,它甚至没有提到SetDoubleBuffered
很有可能SetDoubleBuffered实际上使您的面板自动使用缓冲的dc,文档中没有提到这些类是不推荐使用的(如果是这样的话,我想他们会这样做的)。在
关于wxPython的行动。。。2006年是很久以前的事了。。。可能当时还不存在SetDoubleBuffered方法,或者作者想展示底层的工作原理。在
相关问题 更多 >
编程相关推荐