我有三个问题需要帮助。希望我不要要求太多。在
1)我正在设计一个包含一个框架和一个面板的简单GUI。假设我有两个图像,我用dc在面板上绘制。一个图像将持续淡入淡出(在计时器上),而第二个图像是静止的(不变)。褪色是通过改变图像的不透明度来实现的dc。清除()在重新绘制图像的新版本之前。在
我的问题是:如何在不影响第二个不变图像的情况下绘制淡入/淡出图像?这似乎会导致不必要的绘制,因为静止图像将与褪色图像一起重绘。我可以选择性地清除第一个图像而不影响第二个图像吗?这是我的绘图功能:
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图像反对?我希望能够单击淡入/淡出图像,尽管我似乎无法为其分配id。目标是绑定一个类似于我可以使用wx.StaticBitmap. 在
^{pr2}$3)是否可以wx.DrawBitmap在尺码机里?它似乎只需要一个x,y坐标对。在
dc.DrawBitmap(bitmap, 120, 0, True)
谢谢大家。在
1)对于性能,我建议使用MemoryDC并仅在需要时更新图形。请看这里:BufferedCanvas。您可能需要使用两个以上的缓冲区,因为您正在使用两个图像(请参见示例)。在
2)我不知道这件事,但你有没有试着把面板绑定起来,使面板淡入/淡出? 你可以直接在wx.面板. 在
问候
相关问题 更多 >
编程相关推荐