编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

第7天 | 25天学会wxPython,网格布局

wxchong 2024-07-06 01:10:18 开源技术 18 ℃ 0 评论

网格布局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方面的干货了。赶紧来围观啊!!!

#python##程序员##好平台好讲师##热搜##头条#

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表