2011-11-09 8 views
1

私はwxpythonでサイザーに伸ばした背景イメージを配置する方法を知っています。sizer wxpythonの伸ばした背景イメージを設定しますか?

私はこのチュートリアルで探しています: 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でサイズ変更が可能かどうかはわかりません。ですから、基本的には、サイザの背景として写真を使用できるようにしたいのですが、イメージをサイザーサイズに引き伸ばしてください。記事は、画像を拡大またはサイズを変更する方法を示すことを意図されていない

おかげ

答えて

1

。そのためには、おそらくPython Imaging Library(PIL)が必要になります。サイズを変更すると、フレームの新しいサイズを取得し、それを使用して画像の拡大縮小方法を計算することができます。 PILをダウンロードするには、次のリンクを参照してください。http://www.pythonware.com/products/pil/

+0

ありがとうございました! –

関連する問題