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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风抚微霞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值