【问题标题】:Set stretched background image for sizer wxpython?为sizer wxpython设置拉伸背景图像?
【发布时间】:2011-11-09 20:06:38
【问题描述】:

我想知道如何使用 wxpython 将拉伸的背景图像放入 sizer 中。

我正在看这个教程: http://www.blog.pythonlibrary.org/2010/03/18/wxpython-putting-a-background-image-on-a-panel/

但图像没有调整大小。

import wx

########################################################################
class MainPanel(wx.Panel):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent=parent)
        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
        self.frame = parent

        sizer = wx.BoxSizer(wx.VERTICAL)
        hSizer = wx.BoxSizer(wx.HORIZONTAL)

        for num in range(4):
            label = "Button %s" % num
            btn = wx.Button(self, label=label)
            sizer.Add(btn, 0, wx.ALL, 5)
        hSizer.Add((1,1), 1, wx.EXPAND)
        hSizer.Add(sizer, 0, wx.TOP, 100)
        hSizer.Add((1,1), 0, wx.ALL, 75)
        self.SetSizer(hSizer)
        self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)

    #----------------------------------------------------------------------
    def OnEraseBackground(self, evt):
        """
        Add a picture to the background
        """
        # yanked from ColourDB.py
        dc = evt.GetDC()

        if not dc:
            dc = wx.ClientDC(self)
            rect = self.GetUpdateRegion().GetBox()
            dc.SetClippingRect(rect)
        dc.Clear()
        bmp = wx.Bitmap("Untitled.png")
        dc.DrawBitmap(bmp, 0, 0)


########################################################################
class MainFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, size=(600,450))
        panel = MainPanel(self)
        self.Center()

########################################################################
class Main(wx.App):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, redirect=False, filename=None):
        """Constructor"""
        wx.App.__init__(self, redirect, filename)
        dlg = MainFrame()
        dlg.Show()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = Main()
    app.MainLoop()

这是代码,我不确定是否可以使用 wxpython 调整大小。所以基本上我只是希望能够使用图片作为 sizer 的背景,但是将图像拉伸到 sizer 大小。

谢谢

【问题讨论】:

    标签: python wxpython


    【解决方案1】:

    该文章并非旨在展示如何拉伸或调整图像大小。为此,您可能需要 Python Imaging Library (PIL)。然后,当您调整大小时,您可以获取框架的新大小并使用它来计算如何缩放图像。 PIL 下载链接见以下链接:http://www.pythonware.com/products/pil/

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 1970-01-01
      • 2012-09-19
      • 2010-11-09
      • 2011-11-12
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      相关资源
      最近更新 更多