
- wxPython 教程
- wxPython 首页
- wxPython 简介
- wxPython 环境配置
- wxPython - Hello World
- wxPython - GUI 构建工具
- wxPython - 主要类
- wxPython - 事件处理
- wxPython 布局管理
- wxPython - 按钮
- wxPython - 可停靠窗口
- 多文档界面 (Multiple Document Interface)
- wxPython 绘图 API
- wxPython 拖放操作
- wxPython 资源
- wxPython 快速指南
- wxPython - 有用资源
- wxPython 讨论
wxPython 布局管理
可以通过指定以像素为单位的绝对坐标,将GUI小部件放置在容器窗口内。坐标相对于窗口构造函数的size参数定义的窗口尺寸。小部件在窗口内的位置由其构造函数的pos参数定义。
import wx app = wx.App() window = wx.Frame(None, title = "wxPython Frame", size = (300,200)) panel = wx.Panel(window) label = wx.StaticText(panel, label = "Hello World", pos = (100,50)) window.Show(True) app.MainLoop()
然而,这种绝对定位由于以下原因并不合适:
即使调整窗口大小,小部件的位置也不会改变。
在不同分辨率的不同显示设备上,外观可能不一致。
布局修改很困难,因为它可能需要重新设计整个表单。
wxPython API 提供了布局类,用于更优雅地管理容器内小部件的位置。与绝对定位相比,布局管理器具有以下优势:
- 窗口内的小部件会自动调整大小。
- 确保在不同分辨率的显示设备上外观一致。
- 可以动态添加或删除小部件,而无需重新设计。
wxPython 中的布局管理器称为 Sizer。`wx.Sizer` 是所有sizer子类的基类。让我们讨论一些重要的sizer,例如 `wx.BoxSizer`、`wx.StaticBoxSizer`、`wx.GridSizer`、`wx.FlexGridSizer` 和 `wx.GridBagSizer`。
序号 | Sizer & 描述 |
---|---|
1 | BoxSizer
此sizer允许控件以行方式或列方式排列。BoxSizer 的布局由其orientation参数(`wxVERTICAL` 或 `wxHORIZONTAL`)确定。 |
2 | GridSizer
顾名思义,`GridSizer` 对象呈现一个二维网格。控件按从左到右、从上到下的顺序添加到网格槽中。 |
3 | FlexGridSizer
此sizer也具有二维网格。但是,它在单元格中布局控件时提供了更多灵活性。 |
4 | GridBagSizer
GridBagSizer是一个多功能的sizer。它比FlexGridSizer提供了更多增强功能。子窗口可以添加到网格内的特定单元格。 |
5 | StaticBoxSizer
StaticBoxSizer 将 BoxSizer 放入静态框中。它在框周围提供边框以及顶部的标签。 |
广告