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