在sx的大小在wxPython中更改时动态更改图像大小

时间:2014-04-02 20:22:25

标签: python image python-2.7 wxpython wxwidgets

我在Windows 8操作系统上使用python v2.7和wxPython v3.0。 在下面提供的代码片段中,只创建一个框架,其中包含一个包含图像的垂直sizer和另一个包含两个面板的水平sizer。

问题:当我通过拖动边框调整框架大小时,面板会自动调整大小。与面板不同,图像不会调整大小?在调整大小的情况下,如何让我的图像像面板一样?

代码:可以从此处下载使用的图片文件:green.bmp

import wx

class Frame(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, style=wx.DEFAULT_FRAME_STYLE)
        panelA = wx.Panel(self,-1)
        imageFile = wx.Image('greenbig.bmp', wx.BITMAP_TYPE_ANY).ConvertToBitmap()
        myBitmap = wx.StaticBitmap(panelA, -1, imageFile)

        panel1 = wx.Panel(self, -1,style=wx.SIMPLE_BORDER)
        panel2 = wx.Panel(self, -1, style=wx.SIMPLE_BORDER)
        panelSizer = wx.BoxSizer(wx.HORIZONTAL)
        panelSizer.Add(panel1, 1, wx.ALL|wx.EXPAND, 0)
        panelSizer.Add(panel2, 1, wx.ALL|wx.EXPAND, 0)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panelA, 1, wx.ALL|wx.EXPAND, 0)
        sizer.Add(panelSizer,  1, wx.ALL|wx.EXPAND, 0)
        self.SetSizer(sizer)

        self.Show(True)

app = wx.App()
frame = Frame(None, wx.ID_ANY, 'Image')
app.MainLoop()

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

图像永远不会自动调整大小。如果您想要这种行为,则需要处理wxEVT_SIZE并在其处理程序中自行完成。