wxPython中的布局

#!/usr/bin/python
#-*- coding:utf8 -*-

#看看布局管理

import wx

class GridFrame(wx.Frame):
    def __init__(self, root):
        wx.Frame.__init__(self, root, -1, u"布局管理-01",size=(300,200))
        panel = wx.Panel(self, -1)
        sizer = wx.GridSizer(rows=3, cols=3, hgap=5, vgap=5)
        number = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
        for num in number:
            numBtn = wx.Button(panel, -1, num)
            sizer.Add(numBtn,0,0)
        panel.SetSizer(sizer)
        panel.Fit()


class BoxFrame(wx.Frame):
    def __init__(self, root):
        wx.Frame.__init__(self, root, -1, u"布局管理-02", size=(300,400))
        panel = wx.Panel(self, -1)
        sizer = wx.BoxSizer(wx.HORIZONTAL)  #表示水平布局
        number = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
        for num in number:
            numBtn = wx.Button(panel, -1, num)
            sizer.Add(numBtn, 0, 0)
        panel.SetSizer(sizer)
        panel.Fit()



class BagFrame(wx.Frame):
    def __init__(self, root):
        wx.Frame.__init__(self, root, -1, u"布局管理-03", size=(300,400))
        panel = wx.Panel(self, -1)
        number = ['1', '2', '3']
        col = 0
        sizer = wx.GridBagSizer(hgap=5, vgap=5)
        for num in number:
            numBtn = wx.Button(panel, -1, num)
            sizer.Add(numBtn, pos=(0, col))
            col += 1
        numBtn = wx.Button(panel, -1, u'4')
        sizer.Add(numBtn, pos=(1,0),span=(1,3), flag=wx.EXPAND)
    
        numBtn = wx.Button(panel, -1, u'5')
        sizer.Add(numBtn, pos=(0,col+1),span=(2,1), flag=wx.EXPAND)

        numBtn = wx.Button(panel, -1, u'6')
        sizer.Add(numBtn, pos=(2, 0), span=(1, 2), flag=wx.EXPAND)

        numBtn = wx.Button(panel, -1, u'7')
        sizer.Add(numBtn, pos=(2, 2), span=(1, 1), flag=wx.EXPAND)

        panel.SetSizer(sizer)
        panel.Fit()



class FlexGridFrame(wx.Frame):
    def __init__(self, root):
        wx.Frame.__init__(self, root, -1, u"布局管理-04", size=(400, 300))
        panel = wx.Panel(self, -1)
        number = ['1', '2', '3', '4', '5', '6']
        sizer = wx.FlexGridSizer(rows=3, cols=3, hgap=5, vgap=5)
        for num in number:
            numBtn = wx.Button(panel, -1, num)
            sizer.Add(numBtn, 0, 0)
        numBtn = wx.Button(panel, -1, u'7')
        numBtn.SetMinSize((100, 48))
        sizer.Add(numBtn, 0, 0)

        numBtn = wx.Button(panel, -1, u'8')
        numBtn.SetMinSize((50, 45))   #调整大小
        sizer.Add(numBtn, 0, 0)

        panel.SetSizer(sizer)
        panel.Fit()
     






class MyApp(wx.App):
    def OnInit(self):
        #self.frame = GridFrame(None)
        #self.frame = BoxFrame(None)
        #self.frame = BagFrame(None)
        self.frame = FlexGridFrame(None)
        self.frame.Show()
        return True

app = MyApp()

app.MainLoop()


QQ交流群: 204944806

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值