- wxPython 教程
- wxPython 首頁
- wxPython 簡介
- wxPython 環境配置
- wxPython - Hello World
- wxPython - GUI 構建工具
- wxPython - 主要類
- wxPython - 事件處理
- wxPython 佈局管理
- wxPython - 按鈕
- wxPython - 可停靠視窗
- 多文件介面 (Multiple Document Interface)
- wxPython 繪圖 API
- wxPython 拖放操作
- wxPython 資源
- wxPython 快速指南
- wxPython - 有用資源
- 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 提供了佈局類,用於更優雅地管理容器內小部件的位置。與絕對定位相比,佈局管理器具有以下優勢:
- 視窗內的小部件會自動調整大小。
- 確保在不同解析度的顯示裝置上外觀一致。
- 可以動態新增或刪除小部件,而無需重新設計。
wxPython 中的佈局管理器稱為 Sizer。`wx.Sizer` 是所有sizer子類的基類。讓我們討論一些重要的sizer,例如 `wx.BoxSizer`、`wx.StaticBoxSizer`、`wx.GridSizer`、`wx.FlexGridSizer` 和 `wx.GridBagSizer`。
| 序號 | Sizer & 描述 |
|---|---|
| 1 | BoxSizer
此sizer允許控制元件以行方式或列方式排列。BoxSizer 的佈局由其orientation引數(`wxVERTICAL` 或 `wxHORIZONTAL`)確定。 |
| 2 | GridSizer
顧名思義,`GridSizer` 物件呈現一個二維網格。控制元件按從左到右、從上到下的順序新增到網格槽中。 |
| 3 | FlexGridSizer
此sizer也具有二維網格。但是,它在單元格中佈局控制元件時提供了更多靈活性。 |
| 4 | GridBagSizer
GridBagSizer是一個多功能的sizer。它比FlexGridSizer提供了更多增強功能。子視窗可以新增到網格內的特定單元格。 |
| 5 | StaticBoxSizer
StaticBoxSizer 將 BoxSizer 放入靜態框中。它在框周圍提供邊框以及頂部的標籤。 |
廣告