В моем приложении wxpython на основе wx.Frame я рисую несколько строк на панели, когда происходят некоторые события, создавая при необходимости экземпляры wx.ClientDC. Единственная проблема: если окно сведено к минимуму и затем восстановлено, строки исчезнут! Есть ли какой-то метод, который я должен переопределить или связать событие с ним, позволит мне вызвать метод рисования, который я создал при восстановлении окна?
Спасибо!
только место, которое вы должны рисовать, находится на wx.EVT_PAINT, поэтому привязывайтесь к этому событию в init панели, например.
self.Bind(wx.EVT_PAINT, self._onPaint)
в _onPaint, используйте wx.PaintDC для рисования, например.
dc = wx.PaintDC(self)
dc.DrawLine(0,0,100,100)
Когда окно восстанавливается, оно (на некоторых платформах) перекрашено с помощью обработчика EVT_PAINT.
Решение представляет собой, например, рисовать те же строки в OnPaint(). Или будьте осторожны, что вы рисуете. См. Класс wxBufferedDC.