网格布局wx.GridSizer即由行列组成的二维表格的布局方式。在GridSizer中,可以定义表格的行列数目,以及单元格之间的横竖间距,它通过AddMany()方法,按照从左到右从上到下方的顺序,一次性插入多个组件,它的语法为:
gs=GridSizer(rows=1, cols=0, vgap=0, hgap=0)
gs.AddMany(self, items)
rows定义行数,cols定义列数,vgap指定垂直方向上的行间距,hgap指定水平方向上的列间距。
程序清单:gridSizer.py
import wx
# 继承Frame
class GridSizer(wx.Frame):
def __init__(self, *args, **kwargs):
super(GridSizer, self).__init__(*args, **kwargs)
# 初始化窗口UI
self.init_ui()
def init_ui(self):
# 定义行列
gs = wx.GridSizer(rows=3, cols=2, vgap=5, hgap=5)
btn1 = wx.Button(self, label="音乐")
btn2 = wx.Button(self, label="舞蹈")
btn3 = wx.Button(self, label="绘画")
btn4 = wx.Button(self, label="雕塑")
btn5 = wx.Button(self, label="游泳")
btn6 = wx.Button(self, label="摄影")
gs.AddMany([(btn1, 0, wx.EXPAND),
(btn2, 0, wx.EXPAND),
(btn3, 0, wx.EXPAND),
(btn4, 0, wx.EXPAND),
(btn5, 0, wx.EXPAND),
(btn6, 0, wx.EXPAND)
])
self.SetSizer(gs)
self.SetTitle("GridSizer布局")
self.Centre()
self.Show(True)
def main():
app = wx.App(False)
GridSizer(None)
app.MainLoop()
if __name__ == "__main__":
main()
运行程序之后,弹出的窗口如下:
AddMany()方法里的参数为数组,数组的内容包含了多个元组,元组里的内容是(window, proportion=0, flag=0, border=0),至于按钮(wx.Button)的应用,会在后面进行讲解。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!
本文暂时没有评论,来添加一个吧(●'◡'●)