用wxformbuilder+一点代码来实现。
首先用wxformbuilder来做出界面,并生成代码。运行结果:
使其有背景图片效果:
#coding:utf-8
import wx
#导入wxformbuilder生成的代码
import BgDemo
class Main(wx.App):
def __init__(self, redirect=False, filename=None):
wx.App.__init__(self, redirect, filename)
dlg = BgDemo.MyFrame(None)
#这里设置哪个控件需要设置背景
dlg.m_panel1.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
dlg.Show()
def OnEraseBackground(self, evt):
"""
设置背景的方法
"""
dc = evt.GetDC()
if not dc:
dc = wx.ClientDC(self)
rect = self.GetUpdateRegion().GetBox()
dc.SetClippingRect(rect)
dc.Clear()
bmp = wx.Bitmap("Sunset.jpg")
dc.DrawBitmap(bmp, 0, 0)
if __name__ == "__main__":
app = Main()
app.MainLoop()