У меня есть три вопроса, по которым я мог бы действительно помочь. Надеюсь, я не слишком много спрашиваю.
1) Я проектирую простой графический интерфейс, который содержит один кадр и одну панель. Допустим, у меня есть два изображения, которые я рисую на панели, используя dc. Одно изображение будет непрерывно появляться и исчезать (по таймеру), а второе является стационарным (не изменяется). Выцветание достигается путем изменения непрозрачности изображения и использования dc.Clear () перед перерисовкой новой версии изображения.
Мой вопрос таков: как бы я нарисовал изображение с постепенным исчезновением / растяжением, не затрагивая второе изображение, которое не изменяется? Кажется, что это вызывает ненужный рисунок, поскольку неподвижное изображение будет перерисовываться вместе с исчезающим изображением. Могу ли я выборочно очистить только первое изображение, не затрагивая второе? Это моя функция рисования:
def on_paint(self, event):
dc = wx.PaintDC(self)
dc = wx.BufferedDC(dc)
brush = wx.Brush('#3B3B3B')
dc.SetBackground(brush)
dc.Clear()
# Draw the first image (stationary)
dc.DrawBitmap(stationaryBitmap, 120, 0, True)
# Draw the second image (fading)
image = self.image.AdjustChannels(1, 1, 1, self.factoralpha)
fadingBitmap = wx.BitmapFromImage(image)
dc.DrawBitmap(fadingBitmap, 120, 0, True)
2) Как связать событие с объектом wx.Image? Я хотел бы иметь возможность щелкнуть на исчезающем изображении, хотя я не могу назначить ему идентификатор. Цель состоит в том, чтобы связать событие, подобное тому, что я мог сделать с wx.StaticBitmap.
self.image = wx.Image("C:\image.png", wx.BITMAP_TYPE_PNG)
# Trying to bind an event, but no ID is assigned
self.Bind(wx.EVT_BUTTON, self.go_button, id=self.image.GetId())
3) Можно ли разместить wx.DrawBitmap в классификаторе? Похоже, что требуется только пара координат x, y.
dc.DrawBitmap(bitmap, 120, 0, True)
Спасибо всем.