作者:herozhx | 来源:互联网 | 2023-10-09 20:57
wxPython官方网站(https:wxpython.org),主要提供事件处理、布局管理、控件、窗口四个GUI内容。一、事件处理self.Bind(wx.EVT_BUTTON,
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()、wx.WrapSizer()、wx.StdDialogButtonSizer()、wx.GriSizer()、wx.FlexGridSizer()、wx.GridBagSizer()。
wx.BoxSizer()是所有布局中最常用的,它可以让其中的子窗口(或控件)沿垂直或水平方向布局。
wx.BoxSizer(参数) wx.HORIZONTAL (垂直布局)、wx.VERTICAL(水平布局)
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) 添加一个空白空间
三、控件
wx.StaticText(parent, label, pos) 静态文本对象,parent(父容器)、label(文本内容)、pos(文本位置)
wx.Button(parent, label, pos) 按钮对象,parent(父容器)、label(文本内容)、pos(文本位置)
四、窗口
窗口类主要有wx.Control(控件类的根类)、wx.NonOwnedWindow(子类wx.TopLevelWindow,子孙类wx.Dialog和wx.Frame)、wx.Panel(面板)、wx.MenuBar(菜单栏)。
wx.Frame是构建图形用户界面的主要窗口类。
wx.Panel(parent) parent(父容器)
五、示例