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提供了Layout类,用于更优雅地管理容器内小部件的定位。与绝对定位相比,Layout管理器的优势在于

  • 窗口内的小部件会自动调整大小。
  • 保证了在不同分辨率的显示设备上的统一外观。
  • 可以动态地添加或删除小部件,而不必重新设计。

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

S.N. 筛选器和描述
1 BoxSizer 这个izer允许控件以行或列的方式排列。BoxSizer的布局由其方向参数(wxVERTICAL或wxHORIZONTAL)决定。
2 GridSizer 顾名思义,GridSizer 对象展示了一个二维的网格。控件按照从左到右和从上到下的顺序被添加到网格槽中。
3 FlexiGridSizer 这款编辑器也有一个二维的网格。然而,它在单元格中的控件布局方面提供了更多的灵活性。
4 GridBagSizer GridBagSizer是一个多功能的分类器。它比FlexiGridSizer提供了更多的增强功能。子部件可以被添加到网格中的特定单元。
5 StaticBoxSizer 一个StaticBoxSizer把一个盒子的尺寸放到一个静态盒子里。它在盒子周围提供一个边框,并在顶部提供一个标签。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程