wxPython

2019/03/08 17:37
阅读数 348

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(父容器)

 

五、示例

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部