wxPython库

wxPython基础

一个简单的界面应用程序构建步骤:

  1. 导入 wx 模块
  2. 定义wx.App类的一个对象
  3. 创建一个顶层窗口的 wx.Frame 类的对象。 给出构造标题和尺寸参数。
  4. 虽然其他控件可以在wx.Frame类的对象加入,但它们的布局无法管理。因此,把一个wx.Panel类的对象到框架。
  5. 添加一个静态文本wx.StaticText类的对象,以显示 ‘Hello World’在窗口内的任意位置。
  6. 通过show()方法激活框架窗口。
  7. 通过app.MainLoop()运行应用程序

wxPython事件

两种事件类型
基本事件
一个基本的事件停留在它起源的窗口。比如移动窗口的 OnMove 事件

命令事件
命令事件可以传播到一个或多个窗口,类层次结构来源于窗口上方。比如点击按钮的 OnButtonClicked事件

事件处理机制

事件对象:是类wx.Event或其子类的对象。
事件源(EventSource):事件的源控件产生事件的wxPython对象。
事件处理器(EventHandler):响应事件调用的方法,也称"处理器方法"。
事件绑定器(EventBinder):用于将不同类型的控件和一个事件对象、一个处理器方法连接起来,使wxPython程序能够通过执行处理器方法中的代码响应控件上的事件。事件绑定器的对象名字是全局性的,以wx.EVT_开头

事件绑定

self.Bind(EventBinder,EventHandler,EventSource)

wxPython控件

控件能使Python程序员轻松创建健壮、功能强大的 GUI程序。
控件的本质使一个类

窗体

创建窗体:
wx.Frame._init_(self,parent,id,title,pos,size,style)
parent:窗体的父容器,如果窗体为顶级窗体,则parent=None
style样式:wx.CAPTION,wx.CLOSE_BOX等

wx.Frame常用方法:
1.Center():设置窗体显示在屏幕中间
2.SetPosition((x,y)):设置窗体在屏幕中的显示位置(x,y)
3.SetSize((width,height)):设置窗体的大小(width,height)
4.SetTitle(title):设置窗体的标题title

wx.Frame的常用事件绑定器:
1.wx.EVT_CLOSE:单击窗体“关闭”按钮时触发相关处理程序。
2.wx.EVT_MENU_OPEN:菜单刚打开时触发相关处理程序。
3.wx.EVT_MENU_CLOSE:菜单刚关时触发相关处理程序

按钮

创建按钮:
wx.Button(parent,id,label,pos,size,style)
style样式:wx.BU_TOP,wx.BU_RIGHT等

常用方法:
1.SetLabel(label):设置按钮上的显示内容label.
2.GetLabel():返回按钮上显示的内容

常用事件绑定器:wx.EVT_BUTTON

标签

文本框

创建文本框:
wx.TextCtrl()
常用方法:
1.GetValue():返回文本框中的内容
2.SetValue(text):设置文本框中的内容text

事件绑定器:
1.wx.EVT_TEXT:当文本框中的内容发生变化时触发相关处理程序
2.wx.EVT_TEXT_ENTER:当在文本框中按下Enter键时触发相关处理程序
3.wx.EVT_TEXT_MAXLEN:当在文本框中的文本长度达到指定最大值时触发相关处理程序

单选按钮

每个单选按钮包括一个圆形按钮和旁边的文本标签。
创建:
wx.RadioButton()

style样式:
wx.RB_GROUP:创建一组相互可选择的按钮
wx.RadioBox:创建一组按钮

常用方法:
1.GetValue():返回单选按钮的状态
2.GetLabel():返回单选按钮的标签文本
3.SetValue(status):设置单选按钮的状态,为选中(True)/未选中(False)
4.SetLabel(label):设置单选按钮标签的显示内容label

事件绑定器:
wx.EVT_BUTTON

复选框

创建:
wx.CheckBox()

提供可以进行复选的控件,显示为一个小标记的矩形框。
方法和wx.RadioBox()基本相同

列表框

用于放置多个元素供用户进行选择,每个元素都是字符串,支持用户单选和多选。
创建:
wx.ListBox(panel,id,pos,size,choices,style)
其中,choices为选项列表

常用方法:
1.Append(item):在列表框尾部添加一个元素item
2.Clear():删除列表框中的所有元素
3.Delete(index):删除列表框指定索引index的元素
4.GetCount():返回列表框中元素的个数
5.GetSelection():返回当前选项列的索引,仅对单选列表框有效
6.SetSelection(index,status):设置指定索引index元素的选择状态status
7.GetString(index):返回指定索引index的元素
8.SetString(index,item):设置指定索引index的元素item
9.IsSelected(index):返回指定索引元素的选择状态
10.Set(choices):使用列表choices重新设置列表框

事件绑定器:
wx.EVT_LISTBOX

组合框

创建 :
wx.ComboBox()
用发和列表框类似

菜单

步骤:
#创建菜单栏
#创建菜单
#将菜单加入菜单栏
#将菜单项添加到菜单
#将菜单栏添加到窗体
#绑定菜单

菜单栏

创建:wx.MenuBar()
常用方法:
1.Append(menu,label):将显示内容为label的菜单menu添加到菜单栏尾部(靠右显示)
2.Insert(pos,menu,label):将显示内容为label的菜单menu插入到指定pos位置
3.Remove(pos):删除位于pos位置的菜单
4.EnableTop(pos,enable):设置pos位置的菜单状态enable,为True(可用)和False(不可用)
5.GetLabelTop(pos):返回指定pos位置的菜单显示内容label
6.SetLabelTop(pos,title):设置指定pos位置的菜单显示内容label

通过self.SetMenuBar(menuBar)将菜单栏添加到窗体

菜单

创建:
wx.Menu()
方法:
1.Append(menuItem):将一个菜单项menuItem添加到菜单
2.AppendMenu(id,label,subMenu,helpstring):为菜单添加一个子菜单subMenu,菜单项显示内容为label,helpstring为帮助信息(可选)
3.AppendRadioItem(id,label,helpstring):为菜单添加一个单选按钮菜单项,显示内容为label
4.AppendCheckItem(id,title,helpstring):为菜单添加一个复选框菜单项,显示内容为label
5.Insert(pos,menuItem):在指定pos位置插入一个菜单项menuItem
6.Remove(menuitem):从菜单中删除菜单项menuitem
7.GetMenuItems():返回菜单项的菜单项列表
8.AppendSeparator():在菜单上添加一条分割线

菜单项

创建:
wx.Menu.Append(id,label,kind)或
menuItem = Wx.MenuItem(menu,id,label,helpstring,kind)
wx.Menu.Append(menuItem)

id:菜单项ID。wxPython中有大量的标准ID被分配给标准菜单项,如wx.ID_NEW、wx.ID_OPEN被分配给标准菜单项”新建“和"打开”。
kind:菜单项类型,是常量,一般从wx.ITEM_NORMAL(普通菜单项,默认选项)、wx.ITEM_CHECK(切换菜单项)、wx.ITEM_RADIO(单选菜单项)中选择一种。

事件绑定器:
wx.EVT_MENU

为菜单项添加组合键:
例如:”新建\tCtrl+N"为菜单项定义一个组合键Ctrl+N

工具栏

创建:
wx.ToolBar()

style样式:
wx.TB_FLAT(平面效果)
wx.TB_HORIZONTAL(水平布局)
wx.TB_VERTICAL(垂直布局)
wx.TB_DOCKABLE(工具栏浮云和可停靠)

常用方法:
1.AddTool(id,label,bitmap):添加一个按钮到工具栏,bitmap为按钮图标
2.AddRadioTool(id,label,bitmap):添加一个单选按钮(有图标和标签)到工具栏,ID为id
3.AddCheckTool(id,label,bitmap):添加一个切换按钮(有图标和标签)到工具栏,ID为id
4.AddLabelTool(id,label,bitmap):添加一个标签(有图标和标签)到工具栏,ID为id
5.RemoveTool(id):删除工具栏上指定id的按钮
6.ClearTools():删除工具栏上的所有按钮

事件绑定器:
wx.EVT_TOOL

状态栏

创建:
wx.StatusBar()

常用方法:
1.CreateStatusBar():添加一个状态栏
2.SetFieldsCount(fieldValue):设置状态分区个数fieldValue
3.SetStatusText(string):设置状态栏内容string
4.SetStatusWidth(valueList):设置各栏宽度valueList

对话框

创建:
wx.Dialog()

style样式:
wx.OK
wx.CANCEL

wxPython中用的较多的是以下一些预配置对话框(wx.Dialog的子类)

消息对话框

创建:
wx.MessageDialog()

style样式:
按钮样式:
wx.OK
wx.CANCEL

图标样式:
wx.ICON_ERROR
wx.ICON_EXCLAMATION
可以是二者之一或者是它们的组合

另一种创建消息对话框的简短方法:
wx.MessageBox(message,caption,style)
ShowModal()

输入对话框

创建:
wx.TextEntryDialog(parent,id,message,title,defaultValue,style,pos)

style样式:
wx.OK
wx.CANCEL

常用方法:
1.SetMaxLength(max):设置用户可以输入到输入对话框中的最大字符数max
2.SetValue(string):设置输入对话框的内容string
3.GetValue():返回输入到对话框的内容
4.ShowModal():显示对话框。确认输入,返回wx.ID_OK;否则,返回wx.ID_CANCEL

文件对话框

创建:
wx.FileDialog(parent,message,DefaultDir,DefaultFile,wildcard,style,pos,size)
DefaultDir:默认文件夹
DefaultFile:默认选择文件
wildcard:通配符,指定要选择的文件类型,格式是display|wildcard,如“jpg files(.jpg)|.jpg|All files(.)|."

常用方法:
1.GetDirectory():返回默认目录
2.GetFilename():返回默认文件名
3.GetFilenames(self):返回用户选择的文件列表
4.GetPath():返回选定文件的完整路径
5.SetDirectory(dir):设置默认目录dir
6.SetFilename(filename):设置默认文件filename
7.SetPath(path):设置文件路径path
8.ShowModal():模态显示对话框。如果用户单击OK按钮,则返回wx.ID_OK,否则,返回wx.ID_CANCEL

字体对话框

创建:
wx.FontDialog(parent,data)
data为字体对象,如wx.FontData()对象

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值