wxPython编程学习笔记(02)wxPython的布局
作者: J.sky
451 字·预计阅读 3 min read
-- 阅读

wxPython的布局
窗口程序中会用到很多的小部件,有序的排列这些小部件可以让应用更直观,
我们可以选择下列sizers:
1.wx.BoxSizer
2.wx.StaticBoxSizer
3.wx.GridSizer
4.wx.FlexGridSizer
5.wx.GridBagSizer
这里我介绍一下wx.BoxSizer,灵活应用它基本上可以满足大部分窗口中的布局。
wx.BoxSizer
wx.BoxSizer有wx.VERTICAL或wx.HORIZONTAL两种方向属性,而且可以嵌套,这样复杂的窗口布局也可以迎刃解决。
如果我们使用wx.EXPAND标志,我们的部件将使用所有已分配给它的空间。
列举一些属性:
1.wx.LEFT
2.wx.RIGHT
3.wx.BOTTOM
4.wx.TOP
5.wx.ALL
以上属性用来控制小部件在布局管理器中的位置,wx.All 可以用来控制边距,例如:
vbox.Add(midPan, 1, wx.EXPAND | wx.ALL, 20)
我们还可以通过以下属性定义我们的部件对齐::
1.wx.ALIGN_LEFT 2.wx.ALIGN_RIGHT 3.wx.ALIGN_TOP 4.wx.ALIGN_BOTTOM 5.wx.ALIGN_CENTER_VERTICAL 6.wx.ALIGN_CENTER_HORIZONTAL 7.wx.ALIGN_CENTER
好了,下边列举了一下小例子:
import wx
class HelloFrame(wx.Frame):
def __init__(self, *args, **kw):
# 调用父类的创建方法
super(HelloFrame, self).__init__(*args, **kw)
# 创建一个面板窗口,panel 是用来放置各种小部件的面板,通常内置于Frame内部
pl = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL) # 第一行组件
st = wx.TextCtrl(pl)
hbox1.Add(st, proportion=1, )
bt1 = wx.Button(pl, label="hello world")
hbox1.Add(bt1, )
vbox.Add(hbox1, flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, border=10)
hbox2 = wx.BoxSizer(wx.HORIZONTAL) # 第二行组件
bt2 = wx.Button(pl, label="hello world")
bt3 = wx.Button(pl, label="hello world")
bt4 = wx.Button(pl, label="hello world")
hbox2.Add(bt2, wx.EXPAND)
hbox2.Add(bt3, )
hbox2.Add(bt4, wx.EXPAND)
vbox.Add(hbox2, flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, border=10)
sb = wx.StaticBox(pl, label="test")
hbox3 = wx.StaticBoxSizer(sb, wx.HORIZONTAL) # 第三行组件
bt5 = wx.Button(pl, label="yes")
bt6 = wx.Button(pl, label="no")
hbox3.Add(bt5, )
hbox3.Add(bt6, flag=wx.LEFT | wx.BOTTOM, border=10)
vbox.Add(hbox3, flag=wx.ALIGN_RIGHT | wx.RIGHT, border=10)
pl.SetSizer(vbox)
def main():
app = wx.App()
frm = HelloFrame(None, title='wxPython 布局练习')
frm.Show() # 显示窗口
app.MainLoop() # 持续更新窗口
if __name__ == '__main__':
main()
本文源码下载:
本文为原创文章,遵循: CC BY-NC-SA 4.0版权协议。
本文链接:https://www.suiyan.cc/blog/88
标签: Python GUI
加载评论中...
相关文章
- Python Gui新框架:NiceGui之初体验
- wxPython编程学习笔记(10)wx.FileDialog文件选择框
- wxPython编程学习笔记(09)wx.Python Menu 菜单
- wxPython编程学习笔记(08)wx.ListBox 下拉列表框
- wxPython编程学习笔记(07)wxPython Dialog 弹出对话
- wxPython编程学习笔记(06)wx.ComboBox下拉列表框
- wxPython编程学习笔记(05)单选及多选按钮
- wxPython编程学习笔记(04)wx.Butoon的应用
- wxPython编程学习笔记(03)wxPython中的事件
- wxPython编程学习笔记(01)Frame程序的窗口
- Python TK和Tkinter的GUI编程(10) filedialog 文件目录选择对话框
- Python TK和Tkinter的GUI编程(9) Event 键盘鼠标事件
- Python TK和Tkinter的GUI编程(8) Scalet和Spinbox的简单使用
- Python TK和Tkinter的GUI编程(7) Scrollbar的使用
- Python TK和Tkinter的GUI编程(6) Checkbutton Radiobutton
- Python TK和Tkinter的GUI编程(5) messagebox tk的弹出对话框
- Python TK和Tkinter的GUI编程(4) Entry Text 文本框控件
- Python TK和Tkinter的GUI编程(3) 列表框 Listbox
- Python TK和Tkinter的GUI编程(2)菜单Menu
- Python TK和Tkinter的GUI编程(1)窗口、标签Label、按钮Button