Python 使用重载方法创建wxImage

Python 使用重载方法创建wxImage,python,wxpython,overloading,Python,Wxpython,Overloading,我正在尝试创建一个wxImage,它只是一个实心的红色16x16正方形。为此,我做了以下工作: image = wx.EmptyImage(16, 16) image.SetRGB(rect=wx.Rect(0,0,16,16), red=255, green=0, blue=0) 我正在尝试使用找到的SetRGB函数的第二个版本 但是,我得到了以下信息: TypeError:未找到必需的参数“x”(位置2),这似乎表明它正在尝试使用函数的第一个版本 我也尝试过: image.SetRGB(w

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

image = wx.EmptyImage(16, 16)
image.SetRGB(rect=wx.Rect(0,0,16,16), red=255, green=0, blue=0)
我正在尝试使用找到的
SetRGB
函数的第二个版本

但是,我得到了以下信息:
TypeError:未找到必需的参数“x”(位置2)
,这似乎表明它正在尝试使用函数的第一个版本

我也尝试过:

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上运行。您在指向wxPython 3.0/Phoenix的链接中提到的是另一种野兽。在那里,上面的代码会使解释器崩溃,而下面的代码行会工作

img.SetRGB(wx.Rect(0, 0, TILE_WIDTH, TILE_HEIGH), 255, 0, 0)
在两种平台上都能工作的东西(大概是您想要的):


谢谢,这很有帮助。我很好奇你是如何知道哪些功能可以在哪些平台上工作的。是否有强调不同版本之间兼容性的文档?我一直在使用这两个文档,认为它们引用的是同一个版本,但在每个版本中都遗漏了一些信息。我的步骤是:1)查阅wxPython/Phoenix文档(因为很好阅读,将适用于95%的情况2)尝试并插入代码(eclipse+PyDev和针对不同的wxPython使用
virtualenv
会很方便)3)查阅wxWidgets文档4)搜索Internethanks以获得帮助。除了使用
virtualenv
的部分之外,这几乎就是我的流程。我没听说过,但听起来很有用,我会查一查。
bmp = wx.EmptyBitmapRGBA(TILE_WIDTH, TILE_HEIGH, 255, 0, 0, 255)
img = wx.ImageFromBitmap(bmp)