一个GUI部件可通过指定以像素为单位的绝对坐标放置在容器窗口中。 坐标是相对于它的构造尺寸参数定义的窗口的尺寸大小。窗口中的窗口小部件的位置由它的构造函数的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。
S.N. |
大小测定器和说明
|
---|---|
1 |
BoxSizer
sizer允许控件排放在按行或列的方式。BoxSizer布局是由它的定位参数(wxVERTICAL或wxHORIZONTAL)确定。 |
2 |
GridSizer
顾名思义,一个GridSizer对象呈现二维网格。控件被添加在网格槽以左到右和由上到下方顺序。 |
3 |
FlexiGridSizer
这种sizer 也有一个二维网格。它提供灵活性布局中的控制单元。
|
4 |
GridBagSizer
GridBagSizer是一种多功能sizer。它比FlexiGridSizer提供了更多的增强功能。子构件可被添加到网格中的指定单元格。
|
5 |
StaticBoxSizer
StaticBoxSizer把一个盒子sizer放到静态框。它提供了围绕框边界以及顶部标签。
|