使用重载方法创建 wxImage

Creating a wxImage using overloaded methods

我正在尝试创建一个 wxImage,它只是一个纯红色的 16x16 正方形。为此,我做了以下工作:

image = wx.EmptyImage(16, 16)
image.SetRGB(rect=wx.Rect(0,0,16,16), red=255, green=0, blue=0)

我正在尝试使用找到的 SetRGB 函数的第二个版本 here

但是,我得到以下信息: TypeError: Required argument 'x' (pos 2) not found,这似乎表明它正在尝试使用该功能的第一个版本。

我也试过:

image.SetRGB(wx.Rect(0,0,16,16), 255, 0, 0)

得到同样的错误。

有没有某种方法可以调用我缺少的函数?我想我只是错误地调用了函数,但我不太确定如何修复它。

这取决于您使用的wxPython

img = wx.EmptyImage(TILE_WIDTH, TILE_HEIGH)
img.SetRGBRect(wx.Rect(0, 0, TILE_WIDTH, TILE_HEIGH), 255, 0, 0)
bmp = wx.BitmapFromImage(img)

将在 wxPython 3.0/classic/MSW 上工作。您在 link 中指的是 wxPython 3.0/Phoenix,这是一个不同的野兽。上面的代码会使解释器崩溃,而下面的行会起作用。

img.SetRGB(wx.Rect(0, 0, TILE_WIDTH, TILE_HEIGH), 255, 0, 0)

在两个平台上都能工作的东西(大概是你想要的):

bmp = wx.EmptyBitmapRGBA(TILE_WIDTH, TILE_HEIGH, 255, 0, 0, 255)
img = wx.ImageFromBitmap(bmp)