核心提示:wx图形化的尺寸器布局代码实例# -*- coding:utf-8 -*-之前的组件由于是通过pos参数确定位置,而不会根据主组件的改变而改变,是固定死的,不灵活所以我们需要使各组件随主框架的改变而改...
wx图形化的尺寸器布局代码实例
# -*- coding:utf-8 -*- ''' 之前的组件由于是通过pos参数确定位置,而不会根据主组件的改变而改变,是固定死的,不灵活 所以我们需要使各组件随主框架的改变而改变 wxpython 尺寸器布局 自适应:按照比例来布局 1.尺寸器不会放在窗口组件上,而是放在Panel(画布)上 2.尺寸器(BoxSizer) 1.水平尺寸器(默认的) 2.垂直尺寸器(VERTICAL) 3.尺寸器的一些参数 内容、占比例、填充的样式和方向、边框 3.同一个画布上可以拥有N个尺寸器,但必须要有一个主尺寸器,尺寸器可以嵌套 ''' #-------------------------------------------------------------------------- # 参数设置说明: # 1.proportion 在当前尺寸器当中占有的相对比例 # 2.flag 填充的样式,参数如下: # 1.wx.EXPAND 在进行填充 # 2.wx.ALL wx.LIFT wx.RIGHT wx.TOP wx.BOTTOM 填充的方向 # 3.这两个参数要通过管道符号连接 # 3.border 指的是边框线 # import wx app = wx.App() frame = wx.Frame(None,title="MyFrame",size = (420,350)) panel = wx.Panel(frame) #创建画布,以主窗口为父 but1 = wx.Button(panel,label="save") #以画布为父类 but2 = wx.Button(panel,label="back") pathText = wx.TextCtrl(panel) #以画布为父类 content = wx.TextCtrl(panel) #声明尺寸器 sBox = wx.BoxSizer() #水平尺寸器,不带参数则为默认的水平尺寸器 vBox = wx.BoxSizer(wx.VERTICAL) #垂直尺寸器 #给尺寸器添加组件,从左往右,从上到下 sBox.Add(pathText,proportion = 3,flag = wx.EXPAND|wx.ALL,border = 5) sBox.Add(but1,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 5) sBox.Add(but2,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 5) vBox.Add(sBox,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 5) vBox.Add(content,proportion = 5,flag = wx.EXPAND|wx.ALL,border = 5) #设置主尺寸 panel.SetSizer(vBox) #因为sBox被嵌套在vBox上,所以以vBox为主尺寸 frame.Show() #因为文本组件和按钮组件都是以窗框组件为父组件,所以只需要调用frame app.MainLoop()