【问题标题】:Changing the image size dynamically when the sizer's size changes in wxPython在 wxPython 中当 sizer 的大小发生变化时动态更改图像大小
【发布时间】:2014-05-14 08:54:18
【问题描述】:

我正在 Windows 8 操作系统上使用 python v2.7 和 wxPython v3.0。 在下面提供的代码中,sn-p 简单地创建了一个框架,该框架具有一个包含图像的垂直大小调整器和另一个包含两个面板的水平大小调整器。

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

代码:使用的图片文件可以从这里下载: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()

感谢您的宝贵时间!

【问题讨论】:

    标签: python image python-2.7 wxpython wxwidgets


    【解决方案1】:

    图像永远不会自动调整大小。如果你想要这种行为,你需要处理 wxEVT_SIZE 并在它的处理程序中自己做。

    【讨论】:

    • 如果你能提供一个例子,我将不胜感激。
    猜你喜欢
    • 2018-03-03
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多