wxPython佈局管理

一個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放到靜態框。它提供了圍繞框邊界以及頂部標籤。