def __init__(self, parent, info):
wx.Dialog.__init__(self, parent, title="About Bonsu", size=(460,300))
self.SetSizeHints(450,300,-1,-1)
self.parent = parent
self.info = info
self.vboxborder = wx.BoxSizer(wx.VERTICAL)
self.vbox = wx.BoxSizer(wx.VERTICAL)
self.icon = wx.Image(os.path.join(os.path.dirname(os.path.dirname(__file__)),'image', 'bonsu.ico'), wx.BITMAP_TYPE_ICO)
if IsNotWX4():
self.bitmap = wx.BitmapFromImage(self.icon)
else:
self.bitmap = wx.Bitmap(self.icon)
self.staticbmp = wx.StaticBitmap(self, -1, self.bitmap)
self.vbox.Add(self.staticbmp, 0, flag=wx.CENTER, border=5)
namestr = info.GetName()+" "+info.GetVersion()
self.namefont = wx.Font((parent.font.GetPointSize()+8),parent.font.GetFamily(),wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD)
self.name = wx.StaticText(self, label=namestr)
self.name.SetFont(self.namefont)
self.vbox.Add((-1, 5))
self.vbox.Add(self.name, 0, flag=wx.CENTER, border=5)
self.vbox.Add((-1, 5))
self.description = wx.StaticText(self, label=info.GetDescription(), style=wx.ALIGN_CENTRE_HORIZONTAL)
self.description.Wrap(400)
self.vbox.Add(self.description, 0, flag=wx.CENTER, border=5)
self.vbox.Add((-1, 5))
self.copyright = wx.StaticText(self, label=info.GetCopyright())
self.vbox.Add(self.copyright, 0, flag=wx.CENTER, border=5)
self.vbox.Add((-1, 5))
if IsNotWX4():
self.web = wx.StaticText(self, label=info.GetWebSite()[0])
else:
self.web = wx.StaticText(self, label=info.GetWebSiteURL())
self.vbox.Add(self.web, 0, flag=wx.CENTER, border=5)
self.vbox.Add((-1, 10))
self.hbox = wx.BoxSizer(wx.HORIZONTAL)
self.credits =wx.Button(self, label="More")
self.Bind(wx.EVT_BUTTON, self.OnCredits, self.credits)
self.hbox.Add(self.credits)
self.hbox.Add((10, -1))
self.license =wx.Button(self, label="License")
self.Bind(wx.EVT_BUTTON, self.OnLicense, self.license)
self.hbox.Add(self.license)
self.hbox.Add((10, -1))
self.close =wx.Button(self, label="Close")
self.Bind(wx.EVT_BUTTON, self.OnClose, self.close)
self.hbox.Add(self.close)
self.vbox.Add(self.hbox, 0, flag=wx.CENTER, border=5)
self.vbox.Add((-1, 10))
self.vboxborder.Add(self.vbox, 1, flag=wx.CENTER|wx.LEFT|wx.RIGHT|wx.TOP|wx.BOTTOM, border=20)
self.SetSizer( self.vboxborder )
self.SetAutoLayout(True)
self.Fit()
self.Layout()
self.Show()
python类StaticBitmap()的实例源码
def __init__(self, parent, info):
title = _("About") + " " + info.Name
wx.Dialog.__init__(self, parent, title=title)
self.info = info
if parent and parent.GetIcon():
self.SetIcon(parent.GetIcon())
image = None
if self.info.Icon:
bitmap = wx.BitmapFromIcon(self.info.Icon)
image = wx.StaticBitmap(self, bitmap=bitmap)
name = wx.StaticText(self, label="%s %s" % (info.Name, info.Version))
description = wx.StaticText(self, label=info.Description)
description.Wrap(400)
copyright = wx.StaticText(self, label=info.Copyright)
url = HyperLinkCtrl(self, label=info.WebSite[0], URL=info.WebSite[1])
font = name.GetClassDefaultAttributes().font
font.SetWeight(wx.FONTWEIGHT_BOLD)
font.SetPointSize(18)
name.SetFont(font)
credits = wx.Button(self, id=wx.ID_ABOUT, label=_("C&redits"))
license = wx.Button(self, label=_("&License"))
close = wx.Button(self, id=wx.ID_CANCEL, label=_("&Close"))
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
btnSizer.Add(credits, flag=wx.CENTER | wx.LEFT | wx.RIGHT, border=5)
btnSizer.Add(license, flag=wx.CENTER | wx.RIGHT, border=5)
btnSizer.Add(close, flag=wx.CENTER | wx.RIGHT, border=5)
sizer = wx.BoxSizer(wx.VERTICAL)
if image:
sizer.Add(image, flag=wx.CENTER | wx.TOP | wx.BOTTOM, border=5)
sizer.Add(name, flag=wx.CENTER | wx.BOTTOM, border=10)
sizer.Add(description, flag=wx.CENTER | wx.BOTTOM, border=10)
sizer.Add(copyright, flag=wx.CENTER | wx.BOTTOM, border=10)
sizer.Add(url, flag=wx.CENTER | wx.BOTTOM, border=15)
sizer.Add(btnSizer, flag=wx.CENTER | wx.BOTTOM, border=5)
container = wx.BoxSizer(wx.VERTICAL)
container.Add(sizer, flag=wx.ALL, border=10)
self.SetSizer(container)
self.Layout()
self.Fit()
self.Centre()
self.Show(True)
self.SetEscapeId(close.GetId())
credits.Bind(wx.EVT_BUTTON, self.on_credits)
license.Bind(wx.EVT_BUTTON, self.on_license)
close.Bind(wx.EVT_BUTTON, lambda evt: self.Destroy())