GridBagSizer是wxPython模块中的一种布局模式(最复杂),它带来了对部件的显式定位, 部件项目还可以跨越行或列。本文将分享如何在wxPython中将图片加入到GridBagSizer。
本文将实现的GUI界面如下:
python代码如下:
import wx
if __name__ =='__main__':
app = wx.App()
window = wx.Frame(None, title = "add picture in GridBagSizer", size = (400,340))
panel = wx.Panel(window)
#利用wxpython的GridBagSizer()进行页面布局
sizer = wx.GridBagSizer(10, 20) #列间隔为10,行间隔为20
#添加上海字段,并加入页面布局,为第一行,第一列
text1 = wx.StaticText(panel, label="上海")
sizer.Add(text1, pos = (0, 0), flag=wx.ALL, border=5)
#获取shanghai.png图片,转化为Bitmap形式,添加到第一行,第二列
image1 = wx.Image('G://shanghai.png', wx.BITMAP_TYPE_PNG).Rescale(320, 120).ConvertToBitmap()
bmp1 = wx.StaticBitmap(panel, -1, image1) #转化为wx.StaticBitmap()形式
sizer.Add(bmp1, pos=(0,1), flag=wx.ALL, border=5)
#添加北京字段,并加入页面布局,为第二行,第一列
text2 = wx.StaticText(panel, label="北京")
sizer.Add(text2, pos=(1,0), flag=wx.ALL, border=5)
#获取beijing.png图片,转化为Bitmap形式,添加到第二行,第二列
image2 = wx.Image('G:\\beijing.png', wx.BITMAP_TYPE_PNG).Rescale(320, 120).ConvertToBitmap()
bmp2 = wx.StaticBitmap(panel, -1, image2) #转化为wx.StaticBitmap()形式
sizer.Add(bmp2, pos=(1,1), flag=wx.ALL, border=5)
#将Panmel适应GridBagSizer()放置
panel.SetSizerAndFit(sizer)
#显示窗口
window.Centre()
window.Show(True)
app.MainLoop()
本次分享到此结束,欢迎大家交流和批评~~