wx.Python - TypeError: ожидается wx.Window, wx.Sizer, Wx.Size или (w,h)
Я пытаюсь создать wx.Image, а затем добавить его в wx.BoxSizer и получить TypeError
Traceback (most recent call last):
File "gui.py", line 72, in <module>
frame = CardFrame(None, cards[0])
File "gui.py", line 45, in __init__
imgSizer.Add(imgImage, 0, wx.ALL)
File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 12697, in Add
return _core_.Sizer_Add(*args, **kwargs)
TypeError: wx.Window, wx.Sizer, wx.Size, or (w,h) expected for item
image - это строка, указывающая путь к изображению (~/app/static/imgs/grizzly_bear.png)
image = os.path.join(IMGS, card.img)
bkg = wx.Panel(self)
#...
imgSizer = wx.BoxSizer(wx.HORIZONTAL)
imgSizer.SetMinSize((240, 120))
#...
imgImage = wx.Image(image, wx.BITMAP_TYPE_ANY)
#...
imgSizer.Add(imgImage, 0, wx.ALL)
#...
topSizer.AddMany(imgSizer, 0, wx.ALL)
1 ответ
Решение
Я не думаю, что wx.Image - это настоящий виджет. Вместо этого вы захотите поместить свой объект wx.Image в виджет wx.StaticBitmap. Здесь есть простое руководство:
http://www.blog.pythonlibrary.org/2010/03/26/creating-a-simple-photo-viewer-with-wxpython/
Или вы также можете взглянуть на демонстрацию wx.Image в демонстрации wxPython (доступна на веб-сайте wxPython).