- wxPython 教程
- wxPython - 首页
- wxPython - 介绍
- wxPython - 环境
- wxPython - Hello World
- wxPython - GUI 构建器工具
- wxPython - 主要类
- wxPython - 事件处理
- wxPython - 布局管理
- wxPython - 按钮
- wxPython - 可停靠窗口
- 多文档界面
- wxPython - 绘图 API
- wxPython - 拖放
- wxPython 资源
- wxPython - 快速指南
- wxPython - 有用的资源
- wxPython - 讨论
wxPython - StaticBoxSizer
StaticBoxSizer 将盒子大小调整器放在静态盒子中。它在盒子周围提供边框,并在顶部提供标签。准备 statcboxsizer 涉及以下步骤 −
- 创建一个 wx.StaticBox 对象。
- 用上述静态盒子作为其参数声明一个 wx.StaticBoxSizer。
- 创建控件并将其添加到 staticbox sizer。
- 将其设置为框架的调整器。
示例
在以下示例中,创建了两个静态盒子调整器,并将其添加到垂直盒子调整器中,该调整器控制框架内面板的布局。
第一个静态盒子调整器围绕一个名为“名称”的静态盒子创建。
nm = wx.StaticBox(panel, -1, 'Name:') nmSizer = wx.StaticBoxSizer(nm, wx.VERTICAL)
将一个水平盒子调整器(包含两个标签和两个文本框)添加到 nmSizer 静态盒子调整器中。
nmbox = wx.BoxSizer(wx.HORIZONTAL)
fn = wx.StaticText(panel, -1, "First Name")
nmbox.Add(fn, 0, wx.ALL|wx.CENTER, 5)
nm1 = wx.TextCtrl(panel, -1, style = wx.ALIGN_LEFT)
nm2 = wx.TextCtrl(panel, -1, style = wx.ALIGN_LEFT)
ln = wx.StaticText(panel, -1, "Last Name")
nmbox.Add(nm1, 0, wx.ALL|wx.CENTER, 5)
nmbox.Add(ln, 0, wx.ALL|wx.CENTER, 5)
nmbox.Add(nm2, 0, wx.ALL|wx.CENTER, 5)
nmSizer.Add(nmbox, 0, wx.ALL|wx.CENTER, 10)
类似地,另一个静态盒子调整器包含一个名为“按钮”的静态盒子。
sbox = wx.StaticBox(panel, -1, 'buttons:') sboxSizer = wx.StaticBoxSizer(sbox, wx.VERTICAL)
两个按钮对象(名为“确定”和“取消”)放在一个水平盒子调整器中,该调整器反过来又放在第二个静态盒子调整器中。
hbox = wx.BoxSizer(wx.HORIZONTAL) okButton = wx.Button(panel, -1, 'ok') hbox.Add(okButton, 0, wx.ALL|wx.LEFT, 10) cancelButton = wx.Button(panel, -1, 'cancel') hbox.Add(cancelButton, 0, wx.ALL|wx.LEFT, 10) sboxSizer.Add(hbox, 0, wx.ALL|wx.LEFT, 10)
将两个静态盒子调整器(“名称”和“按钮”)添加到一个垂直盒子调整器中,该调整器作为顶层框架中面板的布局管理器。
panel = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) vbox.Add(nmSizer,0, wx.ALL|wx.CENTER, 5) vbox.Add(sboxSizer,0, wx.ALL|wx.CENTER, 5) panel.SetSizer(vbox)
以下是完整代码 −
import wx
class Mywin(wx.Frame):
def __init__(self, parent, title):
super(Mywin, self).__init__(parent, title = title)
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
nm = wx.StaticBox(panel, -1, 'Name:')
nmSizer = wx.StaticBoxSizer(nm, wx.VERTICAL)
nmbox = wx.BoxSizer(wx.HORIZONTAL)
fn = wx.StaticText(panel, -1, "First Name")
nmbox.Add(fn, 0, wx.ALL|wx.CENTER, 5)
nm1 = wx.TextCtrl(panel, -1, style = wx.ALIGN_LEFT)
nm2 = wx.TextCtrl(panel, -1, style = wx.ALIGN_LEFT)
ln = wx.StaticText(panel, -1, "Last Name")
nmbox.Add(nm1, 0, wx.ALL|wx.CENTER, 5)
nmbox.Add(ln, 0, wx.ALL|wx.CENTER, 5)
nmbox.Add(nm2, 0, wx.ALL|wx.CENTER, 5)
nmSizer.Add(nmbox, 0, wx.ALL|wx.CENTER, 10)
sbox = wx.StaticBox(panel, -1, 'buttons:')
sboxSizer = wx.StaticBoxSizer(sbox, wx.VERTICAL)
hbox = wx.BoxSizer(wx.HORIZONTAL)
okButton = wx.Button(panel, -1, 'ok')
hbox.Add(okButton, 0, wx.ALL|wx.LEFT, 10)
cancelButton = wx.Button(panel, -1, 'cancel')
hbox.Add(cancelButton, 0, wx.ALL|wx.LEFT, 10)
sboxSizer.Add(hbox, 0, wx.ALL|wx.LEFT, 10)
vbox.Add(nmSizer,0, wx.ALL|wx.CENTER, 5)
vbox.Add(sboxSizer,0, wx.ALL|wx.CENTER, 5)
panel.SetSizer(vbox)
self.Centre()
panel.Fit()
self.Show()
app = wx.App()
Mywin(None, 'staticboxsizer demo')
app.MainLoop()
以上代码生成以下输出 −
wxpython_layout_management.htm
广告