- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2019-10-8 15:49:14
|
显示全部楼层
布局案例
我的思路是,总窗口有左右2个画板,左画板有左右2个文本,右画板有上下2个按钮
import wx
app=wx.App()
#新建总窗口:
frame=wx.Frame(None,id=-1,title='总窗口',
name='总窗口',
size=(400,300))
#设置一字体款式备用,大小26磅,斜体,加粗,下划线,微软雅黑
font=wx.Font(15,wx.SCRIPT,wx.ITALIC,wx.BOLD,underline=False,faceName='Microsoft YaHei')
#新建2个画板:
panel1=wx.Panel(frame)
panel2=wx.Panel(frame)
#在画板1新建2个静态文本:
text1=wx.StaticText(panel1,id=-1,label='大江东去')
text2=wx.StaticText(panel1,id=-1,label='浪淘尽')
#加载字体设置:
text1.SetFont(font)
text2.SetFont(font)
#在画板2新建按钮1:
button1=wx.Button(panel2,label='确定')
#在画板2新建按钮2:
button2=wx.Button(panel2,label='取消')
#加载字体设置:
button1.SetFont(font)
button2.SetFont(font)
#总窗口的空间横向排列:
hsizer=wx.BoxSizer(wx.HORIZONTAL)
frame.SetSizer(hsizer)
#画板1的空间纵向横向排列:
hsizer2=wx.BoxSizer(wx.HORIZONTAL)
panel1.SetSizer(hsizer2)
#画板2的空间纵向纵向排列:
vsizer=wx.BoxSizer(wx.VERTICAL)
panel2.SetSizer(vsizer)
#将text对象加入容器
#左边距10磅:flag=wx.LEFT,border=10
#右边距10磅:flag=wx.RIGHT,border=10
#底边距10磅:flag=wx.BOTTOM,border=10
#顶边距10磅:flag=wx.TOP,border=10
#四周边距10磅:flag=wx.ALL,border=10
#左对齐:wx.ALIGN_LEFT
#右对齐:wx.ALIGN_RIGHT
#顶对齐:wx.ALIGN_TOP
#底对齐:wx.ALIGN_BOTTOM
#垂直对齐:wx.ALIGN_CENTER_VERTICAL
#水平对齐:wx.ALIGN_CENTER_HORIZONTAL
#居中对齐:wx.ALIGN_CENTER
#控件尽量占空间:wx.EXPAND
#style可以使用竖杠“|”表示“且”:
#右对齐且顶对齐:flag=wx.ALIGN_RIGHT|wx.ALIGN_TOP
#proportion:控件自身的排列方式,会随着窗口缩放而变,有012...等数字可用
#总窗口加入画板1和2,画板1顶对齐,画板2底对齐:
hsizer.Add(panel1,
proportion=2,
flag=wx.ALIGN_TOP)
hsizer.Add(panel2,
proportion=2,
flag=wx.ALIGN_BOTTOM)
#画板1加入文本
hsizer2.Add(text1,
proportion=2,
flag=wx.ALIGN_CENTER)
hsizer2.Add(text2,
proportion=2,
flag=wx.ALIGN_CENTER)
#画板2加入按钮,按钮横向居中:
vsizer.Add(button1,
proportion=2,
flag=wx.ALIGN_CENTER_HORIZONTAL)
vsizer.Add(button2,
proportion=2,
flag=wx.ALIGN_CENTER_HORIZONTAL)
frame.Show()
app.MainLoop()
|
|