使用wxpython构建gui

时间:2011-09-14 21:14:43

标签: user-interface wxpython python-2.6

我在我的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))  

1 个答案:

答案 0 :(得分:1)

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

进行缩放

真正的问题是你希望每次窗口都能调整图像大小。这意味着您需要将wx.EVT_SIZE事件绑定到类中的某个方法(比如onSize)。然后每次调用onSize时,您都需要:

  1. 查找当前窗口大小
  2. 将wx.Image缩放到该大小,
  3. 使用wx.BitmapFromImage将其转换为wx.Bitmap,
  4. 在wx.StaticBitmap上调用SetBitmap,传递新的位图。
  5. 有关wxPython中事件处理的基本介绍,请参阅http://zetcode.com/wxpython/events/,包括wx.EVT_SIZE的示例。