2009-06-25 3 views
1

В моем приложении wxpython на основе wx.Frame я рисую несколько строк на панели, когда происходят некоторые события, создавая при необходимости экземпляры wx.ClientDC. Единственная проблема: если окно сведено к минимуму и затем восстановлено, строки исчезнут! Есть ли какой-то метод, который я должен переопределить или связать событие с ним, позволит мне вызвать метод рисования, который я создал при восстановлении окна?wxpython: Как я могу что-то переделать при просмотре окна?

Спасибо!

ответ

0

Когда окно восстанавливается, оно (на некоторых платформах) перекрашивается с использованием обработчика EVT_PAINT.

Решение, например. рисовать те же строки в OnPaint(). Или будьте осторожны, что вы рисуете. См. Класс wxBufferedDC.

1

только место, которое вы должны рисовать, находится на wx.EVT_PAINT, поэтому привяжите это событие в init панели, например.

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

in _onPaint, используйте wx.PaintDC для рисования, например.

dc = wx.PaintDC(self) 
dc.DrawLine(0,0,100,100) 
Смежные вопросы