wxpython:如何在窗口恢复时重绘某些内容?

时间:2009-06-25 20:42:18

标签: python wxpython

在我的基于wx.Frame的wxpython应用程序中,当某些事件发生时,我通过在需要时创建wx.ClientDC实例来在面板上绘制一些行。唯一的问题是,如果窗口最小化然后恢复,线条就会消失!是否有某种方法我应该覆盖或绑定到的事件将允许我调用我在窗口恢复时创建的绘图方法?

谢谢!

2 个答案:

答案 0 :(得分:1)

只有你必须在wx.EVT_PAINT上绘图,所以在面板的 init 中绑定到该事件,例如。

self.Bind(wx.EVT_PAINT, self._onPaint)

在_onPaint中,使用wx.PaintDC来绘制例如。

dc = wx.PaintDC(self)
dc.DrawLine(0,0,100,100)

答案 1 :(得分:0)

当窗口恢复时,它(在某些平台上)使用EVT_PAINT处理程序重新绘制。

解决方案是在OnPaint()中绘制相同的行。或缓冲你绘制的内容。请参阅wxBufferedDC类。