wxPython wx.静态位图颜色 240,240,240



当我创建一个wx时。静态位图并放入位图,它似乎显示一种颜色,RBG = 240,240,240为透明(应该是浅灰色)。为了解决这个问题,我设置了wx的背景颜色。静态位图也为 240,240,240。

代码如下所示:

     self.image_container = wx.StaticBitmap(parent, id=-1, size=(self.x, self.y), pos=(0,0))
     self.image_container.SetBackgroundColour(wx.Colour(240, 240, 240))
     self.image_container.SetBitmap(bmp)
     self.image_container.Update()
     self.image_container.Refresh()

位图的深度为 24 位。愿我得到wx的风格。静态位图错误或其他东西,但我无法弄清楚。这似乎是一个错误。

Python 版本是:2.7.13

Wx 版本是: wxPython==4.0.0b2

在 Windows 10 上运行

这是 Windows API 的旧功能,当时常用的图像格式不支持透明度。目的是为工具栏和菜单图标等内容提供一种具有透明区域的方法,默认情况下,它们使用浅灰色来指示透明区域的位置,因为这是当时的默认窗口背景颜色。

其他解决方法是可能的。在将图像提供给静态位图之前,可以在内存中调整图像,但是在图像文件本身中修复它可能是最容易的。 例如,您可以编辑图像文件并将 240 灰度像素更改为 241 或其他像素。或者,您可以将图像文件转换为支持透明度的其他格式,这应绕过自动透明度设置。