鍍金池/ 教程/ Python/ wxPython布局管理
wxPython GUI構(gòu)建工具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布局管理

一個(gè)GUI部件可通過指定以像素為單位的絕對(duì)坐標(biāo)放置在容器窗口中。 坐標(biāo)是相對(duì)于它的構(gòu)造尺寸參數(shù)定義的窗口的尺寸大小。窗口中的窗口小部件的位置由它的構(gòu)造函數(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() 

絕對(duì)定位不適合下列原因 ?

  • 小部件的位置,如果調(diào)整窗口的大小也不會(huì)改變。
  • 外觀可能不是均勻的,在具有不同的分辨率不同的顯示設(shè)備。
  • 修改中的布局是困難的,因?yàn)樗赡苄枰匦略O(shè)計(jì)整個(gè)表格。

wxPython的API提供了布局類的容器內(nèi)的小部件的定位更優(yōu)雅的管理。布局管理器使用絕對(duì)定位的優(yōu)點(diǎn)是 -

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

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

S.N.
大小測(cè)定器和說明
1 BoxSizer

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

2 GridSizer

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

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