目录

wxPython - 布局管理( Layout Management)

通过指定以像素为单位测量的绝对坐标,可以将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()

然而,由于以下原因,这种Absolute Positioning不合适 -

  • 即使调整窗口大小,窗口小部件的位置也不会改变。

  • 在具有不同分辨率的不同显示设备上外观可能不均匀。

  • 布局中的修改很困难,因为它可能需要重新设计整个表单。

wxPython API提供了布局类,可以更加优雅地管理容器内小部件的定位。 布局管理者优于绝对定位的优势是 -

  • 窗口内的窗口小部件会自动调整大小。
  • 确保在具有不同分辨率的显示设备上均匀外观。
  • 无需重新设计即可动态添加或删除小部件。

布局管理器在wxPython中称为Sizer。 Wx.Sizer是所有sizer子类的基类。 让我们讨论一些重要的大小调整器,如wx.BoxSizer,wx.StaticBoxSizer,wx.GridSizer,wx.FlexGridSizer和wx.GridBagSizer。

SN Sizer和描述
1 BoxSizer

该分级器允许控件以行方式或列方式排列。 BoxSizer的布局由其方向参数(wxVERTICAL或wxHORIZONTAL)决定。

2 GridSizer

顾名思义,GridSizer对象呈现二维网格。 控件以从左到右和从上到下的顺序添加到网格槽中。

3 FlexiGridSizer

该分级器还具有二维网格。 然而,它在细胞中布置对照物时提供了更多的灵活性。

4 GridBagSizer

GridBagSizer是一款多功能的分级器。 它提供了比FlexiGridSizer更多的增强功能。 子窗口小部件可以添加到网格中的特定单元格。

5 StaticBoxSizer

StaticBoxSizer将box sizer放入静态框中。 它提供了盒子周围的边框以及顶部的标签。

↑回到顶部↑
WIKI教程 @2018