2015-08-18 3 views
0

Я пытаюсь создать wxImage, который является сплошным красным квадратом 16x16. Чтобы сделать это, я сделал следующее:Создание wxImage с использованием перегруженных методов

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) 

и получил ту же ошибку.

Есть ли способ вызвать эту функцию, которой я не хватает? Я предполагаю, что я просто неправильно вызываю функцию, но я не совсем уверен, как ее исправить.

ответ

3

Это зависит от того, 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/классический/МСВ. Вы ссылаетесь на свою ссылку на 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) 
+0

Спасибо, что было весьма полезным. Мне любопытно, как вы знали, какие функции будут работать на каких платформах. Есть ли какая-то документация, в которой подчеркивается совместимость между различными версиями? Я использую документацию для обоих, думая, что они ссылаются на одну и ту же версию, но в каждой из них была оставлена ​​некоторая информация. – samalamma708

+0

Мои шаги, чтобы узнать что-то вроде этого: 1) Проконсультироваться с документами wxPython/Phoenix (потому что приятно читать и применять в 95% случаев 2) попробовать и вытолкнуть код (eclipse + PyDev и иметь '' virtualenv '' для разных wxPythons пригодится) 3) Проконсультируйтесь с wxWidgets docs 4) ищите в Интернете – nepix32

+0

Спасибо за помощь. Это в значительной степени мой процесс, за исключением части с 'virtualenv'. Я не слышал об этом, но это звучит очень полезно, я проверю это. – samalamma708

Смежные вопросы