2011-09-14 54 views
0

我在我的GUI中添加了一个图像到面板中。我希望这个图像适合面板,在那里我想使它的长度与面板的长度一样。我该怎么做?使用wxpython构建GUI

我在我的代码中做了以下操作?所以图像出现在面板顶部,因为我想要的,但我想调整此图像以增加其长度。

class myMenu(wx.Frame): 
    def __init__(self, parent, id, title): 
     wx.Frame.__init__(self, parent, id, title, size=(900, 700)) 
     panel = wx.Panel(self, -1) 
     panel.SetBackgroundColour('#4f3856') 
     img = 'C:\Users\DELL\Desktop\Implementation\img1.jpg' 
     bmp = wx.Bitmap(img) 
     btmap = wx.StaticBitmap(panel, wx.ID_ANY, bmp, (0, 0)) 
+0

您创建了一个位置但不是大小的'wx.StaticBitmap'。只需传递你想要的大小。 –

回答

1

如果你想缩放图像,你可能想打开它作为wx.Image而不是wx.Bitmap。然后你可以使用wx来缩放它。图像的scale(self, width, height, quality)方法http://www.wxpython.org/docs/api/wx.Image-class.html#Scale

真正的问题是你想让图像在每次窗口调整时调整大小。这意味着您需要将wx.EVT_SIZE事件绑定到类中的某个方法(如onSize)。然后每个筛上部分被调用的时候,你需要:

  1. 查找当前窗口的大小,
  2. 规模的wx.Image到大小,
  3. 使用WX将其转换为wx.Bitmap。 BitmapFromImage,
  4. 在您的wx.StaticBitmap上调用SetBitmap,传递新的位图。

查看http://zetcode.com/wxpython/events/了解wxPython中事件处理的基本介绍,包括wx.EVT_SIZE的示例。