我问了一个similar question before,但不幸的是没有人能够帮助我。
我想在wxPython应用程序中使用面板背景的颜色创建图像。问题是,在Linux上,wxPython函数
self.GetBackgroundColour()
不返回背景的真实颜色(请参见下图)
在Windows上似乎还可以
我尝试了各种(不令人满意的)解决方法,但是现在我正在多个平台上测试该应用程序,这增加了另一个针对特定平台的编码要求。
我对此是否太珍贵?还是我应该期望开箱即用?
用于生成这些图像的代码如下(可以使用任何图像代替“ any.png”):
import wx
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Image')
sizer = wx.BoxSizer()
static_bitmap_A = wx.StaticBitmap(self, wx.ID_ANY)
bitmap = wx.Bitmap('any.png')
static_bitmap_A.SetBitmap(bitmap)
sizer.Add(static_bitmap_A, flag=wx.ALL, border=10)
image = wx.Image('any.png')
colour = self.GetBackgroundColour()
red, green, blue = colour[0], colour[1], colour[2]
#red, green, blue = 0, 0, 0
for row in range(image.GetSize()[0]):
for column in range(image.GetSize()[1]):
image.SetRGB(row, column, red, green, blue)
bitmap = wx.Bitmap(image)
static_bitmap_B = wx.StaticBitmap(self, wx.ID_ANY)
static_bitmap_B.SetBitmap(bitmap)
sizer.Add(static_bitmap_B, flag=wx.ALL, border=10)
self.SetSizerAndFit(sizer)
self.Show()
if __name__ == '__main__':
screen_app = wx.App()
main_frame = MainFrame()
screen_app.MainLoop()