wxpython: Как я могу перерисовать что-то, когда окно восстановлено?

1

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

Спасибо!

Теги:
wxpython

2 ответа

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)
0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню