当前位置:  开发笔记 > 编程语言 > 正文

使用wxpython进行双缓冲

如何解决《使用wxpython进行双缓冲》经验,为你挑选了1个好方法。

我正在使用wxpython处理多平台应用程序,并且在绘制Panel时我在Windows上出现了闪烁问题.我曾经在鼠标运动事件中绘制缓冲区(wx.Bitmap),而我的OnPaint方法只是在线组成:

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

相当标准,但我仍然在Windows上有闪烁的问题,而一切都在Linux上运行良好.

解决我的问题调用SetDoubleBuffered(True)__init__方法.

奇怪的是,即使我不再使用BufferedPaintDC,现在一切正常.我更改了我的应用程序,以便所有绘图部分都在OnPaint方法中完成.我不使用缓冲区,直接在wx.PaintDC上完成绘图,完全没有闪烁问题.

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



1> Toni Ruža..:

SetDoubleBuffered很可能实际上使您的面板自动使用缓冲的dc,文档没有提到这些类已被弃用(我认为如果是这样的话,我认为他们会这样做).

关于wxPython in Action ... 2006很久以前......有可能当时不存在SetDoubleBuffered方法,或者作者想要展示在较低级别工作的方式.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有