尝试将事件绑定到面板,而不是整个框架:
self.panel.Bind(wx.EVT_PAINT, self.onPaint)
您的版本对我来说很有效(Windows),但它会不断重新绘制面板,以致使整个处理器吃光了。
来自文档: 请注意,在绘画事件处理程序中,即使不使用它,应用程序也必须始终创建wxPaintDC对象。 否则,在MS
Windows下,为此窗口和其他窗口刷新将出错。
在这里,您收到了整个帧的绘画事件,但是将直流用于面板。
编辑:这http://wiki.wxpython.org/self.Bind%20vs.%20self.button.Bind很好地解释了为什么这行不通:
self.Bind(wx.EVT_PAINT, self.onPaint, self.panel)
在这种情况下,永远不会调用onPaint处理程序。



