def on_paint(self, evt):
self.dc = wx.PaintDC(self)
self.dc.DrawBitmap(self.background, 0,0, True)
Как вы уже, наверное догадались данные манипуляции ведутся с целью отрисовки фона окна, а точнее само окно в форме картинки. Пример можно подсмотреть в wx.Demo -> Miscellaneous -> ShapedWindow. Так вот, такой код приводит к тому, что, если деактивировать окно (произойдет событие ex.EVT_ACTIVATE), и потом опять активировать (это же событие), то контролы внутри окна не отрисуются. Теперь посмотрим на код, который работает правильно:
def on_paint(self, evt):
dc = wx.PaintDC(self)
dc.DrawBitmap(self.background, 0,0, True)
Как видите, проблема решилась тем, что мы не делаем контекст атрибутом окна. Почему так? Хороший вопрос, и ответ на него пока не знаю, не углублялся, так как особо нет времени. Но если кто знает ответ на этот вопрос, милости прошу в комментарии.
Комментариев нет:
Отправка комментария