鍍金池/ 教程/ Python/ wxPython布局管理
wxPython GUI構建工具wxFormBuilder
wxPython StaticText類
WxPython教程
wxPython可??看翱?/span>
wxPython ComboBox & Choice類
wxPython FlexiGridSizer布局
wxPython入門(Hello World)
wxPython RadioButton & RadioBox類
wxPython拖放
wxPython HTMLWindow類
wxPython ToolBar類
wxPython GridBagSizer布局
wxPython Dialog類
wxPython布局管理
wxPython TextCtrl類
wxPython開發(fā)環(huán)境安裝
wxPython Slider類
wxPython CheckBox類
wxPython Major類
wxPython GridSizer布局
wxPython事件處理
wxPython SplitterWindow類
Menu Item, Menu & MenuBar類
wxPython Button控件
wxPython StaticBoxSizer布局
wxPython Guage類
wxPython Frame類
wxPython多文檔界面
wxPython Panel類
wxPython BoxSizer布局
wxPython繪圖API

wxPython布局管理

一個GUI部件可通過指定以像素為單位的絕對坐標放置在容器窗口中。 坐標是相對于它的構造尺寸參數(shù)定義的窗口的尺寸大小。窗口中的窗口小部件的位置由它的構造函數(shù)的pos參數(shù)定義的。
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提供了布局類的容器內的小部件的定位更優(yōu)雅的管理。布局管理器使用絕對定位的優(yōu)點是 -

  • 在窗口中的窗口小部件會自動調整大小。
  • 確保均勻的外觀上不同分辨率的顯示設備。
  • 添加或去除部件動態(tài)地是可能的,而不需要重新設計。

布局管理器在wxPython中被稱為Sizer。Wx.Sizer是所有sizer 的基類。讓我們來討論一些重要的sizer ,如wx.BoxSizer,wx.StaticBoxSizer,wx.GridSizer,wx.FlexGridSizer和wx.GridBagSizer。

S.N.
大小測定器和說明
1 BoxSizer

sizer允許控件排放在按行或列的方式。BoxSizer布局是由它的定位參數(shù)(wxVERTICAL或wxHORIZONTAL)確定。

2 GridSizer

顧名思義,一個GridSizer對象呈現(xiàn)二維網(wǎng)格。控件被添加在網(wǎng)格槽以左到右和由上到下方順序。

3 FlexiGridSizer
這種sizer 也有一個二維網(wǎng)格。它提供靈活性布局中的控制單元。
4 GridBagSizer
GridBagSizer是一種多功能sizer。它比FlexiGridSizer提供了更多的增強功能。子構件可被添加到網(wǎng)格中的指定單元格。
5 StaticBoxSizer
StaticBoxSizer把一個盒子sizer放到靜態(tài)框。它提供了圍繞框邊界以及頂部標簽。