wxPython官方網站 (https://wxpython.org/),主要提供 事件處理、布局管理、控件、窗口 四個GUI內容。
一、事件處理
self.Bind(wx.EVT_BUTTON, self.on_click, b) 綁定事件,第一個參數(事件類型),第二個參數(事件處理者),第三個參數(事件源)
事件類型:
wx.EVT_BUTTON 按鈕
wx.EVT_LEFT_DOWN 鼠標按下
wx.EVT_LEFT_UP 鼠標釋放
wx.EVT_MOTION 鼠標移動
二、布局管理
wxPython中可以通過兩種方式實現布局管理,即絕對布局和Sizer管理布局。絕對布局就是使用具體數值設置子窗口和控件的位置和大小,它不會隨着父容器移動或調整大小后而變化。size=(300,180)和pos=(110,15)都屬於絕對布局。
wxPython提供了8個布局管理類,包括wx.Sizer(布局管理類的根類)、wx.BoxSizer(布局器類)、wx.StaticBoxSizer(在box布局周圍多一個附加的帶靜態文本的邊框)、wx.WrapSizer()、wx.StdDialogButtonSizer()、wx.GriSizer(以網格形式對子窗口進行擺放, 固定)、wx.FlexGridSizer(網格布局, 大小可不同)、wx.GridBagSizer()。
wx.BoxSizer()是所有布局中最常用的,它可以讓其中的子窗口(或控件)沿垂直或水平方向布局。
wx.BoxSizer(參數) wx.HORIZONTAL (垂直布局)、wx.VERTICAL(水平布局)
wx.StaticBoxSizer(box, orient=HORIZONTAL) box(StaticBox(靜態框)對象)
wx.StaticBoxSizer(orient, parent, label="") orient(布局方向)、parent(父窗口)
wx.GridSizer(rows, cols, vgap, hgap) rows(行數)、cols(列數)、vgap(垂直間隙)、hgap(水平間隙)
wx.GridSizer(rows, cols, gap) gap(wx.Size類型,指定垂直和水平間隙)
wx.GridSizer(cols,vgap,hgap) 指定列數,不限定行數
wx.GridSizer(cols,gap=wx.Size(0,0)) 同wx.GridSizer(rows, cols, gap)
wx.FlexGridSizer() 同wx.GridSizer() 私有方法有AddGrowableRow(idx, proportion=0)和AddGrowableRow(idx, proportion=0)
Add(window, proportion=0, flag=0, border=0, userData=None) 添加父窗口 proportion(空間占比,僅被wx.BoxSizer使用)、flag(用來控制對齊、邊框、調整尺寸)、
Add(sizer, proportion=0, flag=0, border=0, userData=None) 添加到另一個Sizer中,用於嵌套
Add(width, height, proportion, flag=0, border=0, userData=None) 添加一個空白空間
AddMany() 可以一次性添加幾個
對齊flag標志 |
|
標志 | 說明 |
wx.ALIGN_TOP | 頂對齊 |
wx.ALIGN_BOTTOM | 底對齊 |
wx.ALIGN_LEFT | 左對齊 |
wx.ALIGN_RIGHT | 右對齊 |
wx.ALIGN_CENTER | 居中對齊 |
wx.ALIGN_CENTER_VERTIAL | 垂直居中對齊 |
wx.ALIGN_CENTER_HORIZONTAL | 水平居中對齊 |
wx.ALGIN_CENTRE | 同wx.ALIGN_CENTER |
wx.ALIGN_CENTRE_VERTIAL | 同wx.ALIGN_CENTER_VERTIAL |
wx.ALIGN_CENTRE_HORIZONTAL | 同wx.ALIGN_CENTER_HORIZONTAL |
邊框flag標志 | |
標志 | 說明 |
wx.TOP | 設置有頂部邊框,邊框的寬度需要通過Add()方法的border參數設置 |
wx.BOTTOM | 設置有底部邊框 |
wx.LEFT | 設置有左邊框 |
wx.RIGHT | 設置有右邊框 |
wx.ALL | 設置4面全有邊框 |
調整尺寸flag標志 | |
標志 | 說明 |
wx.EXPAND | 調整子窗口(或控件)完全填滿有效空間 |
wx.SHAPED | 調整子窗口(或控件)填充有效空間,但保存高寬比 |
wx.FIXED_MINSIZE | 調整子窗口(或控件)為最小尺寸 |
wx.RESERVE_SPACE_EVEN_IF_HIDDEN | 設置此標志后,子窗口(或控件)如果被隱藏,所占空間保留 |
三、控件
wx.StaticText(parent, label, pos) 靜態文本對象,parent(父容器)、label(文本內容)、pos(文本位置)
wx.Button(parent, id, label, pos) 按鈕對象,parent(父容器)、id(算是識別的參數吧)、label(文本內容)、pos(文本位置)
四、窗口
窗口類主要有wx.Control(控件類的根類)、wx.NonOwnedWindow(子類wx.TopLevelWindow,子孫類wx.Dialog和wx.Frame)、wx.Panel(面板)、wx.MenuBar(菜單欄)。
wx.Frame是構建圖形用戶界面的主要窗口類。
wx.Panel(parent) parent(父容器)
五、示例