• wxpython 的sizer布局


    一、简介:
    Sizer布局管理器是管理界面中各种控件的组件,使用Sizer组件可以自动解决控件的位置和控件之间的间距问题,提高GUI程序的可控性。wxpython提供了Sizer布局管理器自动设置控件之间的位置。布局管理器分为grid sizer,flex grid sizer,grid bag sizer,box sizer,(都是继承父类Sizer)。
    二、创建步骤:
    1.创建Sizers布局管理器。
    2.调整SetSizer()将布局管理器添加到容器中,这里的容器一般指窗口,panel面板等组件。这样就建立了布局管理器和窗口之间的联系。
    def SetSizer(self, sizer, deleteOld=True)
    3.调用容器的Add()方法将各个组件添加到布局管理器中.
    Add(self,item, proportion=0, flag=0, border=0, userData=None)
    item        是添加到布局管理器中的组件,
    proportion  是表示当前窗口大小发生改变时,控件之间的比例
    flag        表示窗口风格,对齐方式,边框等信息
    border      边框大小(前提是flag设置了边框)
    userdata    用于传递额外的数据
    4.调用容器的Fit()方法计算布局管理器和容器窗口的大小,来自动调整窗口大小,使其适合当前窗口。
    Fit(self)
    三、布局管理器的使用:
    1、Grid Sizer布局:
    grid sizer布局是采用表格的形式分配各种控件,不需要设置控件在容器中的位置,直接添加到grid sizer布局管理器中即可
    GridSizer(cols, vgap, hgap)#vgap hgap代表水平距离和垂直距离
    GridSizer(cols, gap=Size(0,0))
    GridSizer(rows, cols, vgap, hgap)
    GridSizer(rows, cols, gap)
    示例:
    class MyGrid(wx.Frame):
        def __init__(self,parent=None):
            super(MyGrid, self).__init__(parent,-1,"grid布局",size=(300,150))
            panel = wx.Panel(self,-1)
            sizer = wx.GridSizer(rows=3, cols=3, vgap=5, hgap=5) #vgap hgap代表水平距离和垂直距离
            panel.SetSizer(sizer)

            colorList = ["红", "绿", "蓝", "白", "紫"]
            for color in colorList:
                btn = wx.Button(panel,-1,color,style=wx.DEFAULT)
                sizer.Add(btn,0,wx.TOP|wx.LEFT)  #将控件添加在下一可用网格插槽,默认也是0,可以不用写 第一个是比例值,第二个是flag风格
            panel.Fit()
    class MyApp(wx.App):
        def OnInit(self):#在事件循环处理之前被系统调用
            print("开始进入事件循环")
            self.frame = MyGrid(None)
            self.frame.Show()
            self.SetTopWindow(self.frame)
            self.frame.GetId()#获得id
            re

  • 相关阅读:
    Zookeeper
    简记:使用 Django Shell 清空 数据库表
    【SpringMVC】JSR 303与拦截器注释使用
    Filebeat+Kafka+ELK搭建
    网络安全(黑客)自学
    Qt-OpenCV学习笔记(中级)-- 总结
    Transformer英语-法语机器翻译实例
    Nginx快速入门教程,域名转发、负载均衡
    Elasticsearch 之 join 关联查询及使用场景
    它让你1小时精通RabbitMQ消息队列(新增死信处理)
  • 原文地址:https://blog.csdn.net/a316495442/article/details/128029445