Python GUI编程:wxPython模块之事件管理

2022-08-0423:00:00编程语言入门到精通Comments573 views字数 1890阅读模式

设计开发的界面之所以称为用户界面,是因为它能响应使用者的操作,然后执行相关指令,如果设计出来的界面只能够进行浏览阅读,那么只能称之为图片或者可读文本。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

在响应使用者的操作之前,我们要来了解几个名词。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

1) 事件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

事件就是用户执行的动作,例如我们去点击一个按钮,这就是一个事件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

2) 事件类型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

事件也是有分类的,例如我们点击按钮和松开按钮,这就属于两种类型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

3) 事件源文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

事件由哪些控件控制发生文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

4) 事件处理者文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

它是wxPython内部的一个wx.EvtHandler子类中的一个方法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

理解了这几个概念,下面我们开始进一步学习。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

    1. 绑定事件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

事件的绑定即我们把一个函数捆绑到一个可发生改变的控件上,例如我们为确定按钮绑定添加一个事件来验证相关信息,语法格式如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

1
Button_login.Bind(wx.EVT_BUTTON,OnclickEventName)

wx.EVT_BUTTON是事件类型选择了按钮类型,OnclickEventName为点击按钮时执行的方法名。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

我们通过这种方法来完善上一节创建的登录界面,代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import wx
class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(selfNone-1"登录界面", size=(300300))
        panel = wx.Panel(self)#创建一个画布,然后创建功能区并放到画布上
        self.title = wx.StaticText(panel,label = '登陆界面')
        self.username = wx.StaticText(panel,label = '用户:')
        self.user_name = wx.TextCtrl(panel,style = wx.TE_LEFT)
        self.userpassword = wx.StaticText(panel,label = '密码:')
        self.user_password = wx.TextCtrl(panel,style = wx.TE_PASSWORD)
        self.button_login = wx.Button(panel,label = '登陆')
        self.button_login.Bind(wx.EVT_BUTTON,self.OnclickEventname)
 ...和上一节一致,在这里省略....
    def OnclickEventname(self,event):
        ms = ''
        urnm = self.user_name.GetValue()
        pwd = self.user_password.GetValue()
        if urnm == '' or pwd == '':
            ms = '用户或密码不能为空'
        elif urnm == 'qy' and pwd == '123456':
            ms =  '登陆成功'
        else:
            ms = '用户或密码错误'
        wx.MessageBox(ms)
if __name__ == "__main__":
    app = wx.App()
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

运行图为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

Python GUI编程:wxPython模块之事件管理Python GUI编程:wxPython模块之事件管理文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

Python GUI编程:wxPython模块之事件管理文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

我们主要对绑定的函数部分进行掌握即可,函数中的内容为获取了我们在用户和密码框中输入的内容,分三种判断方式返回三种结果,然后通过MessageBox方法把内容显示在提示框中,我们要注意在绑定的时候的代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

1
self.button_login.Bind(wx.EVT_BUTTON,self.OnclickEventname)

事件就是通过这一行代码和下面的函数绑定在了一起,每当我们点击一次按钮,按钮就会执行函数中的内容。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

    2. 总结文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

事件绑定还被分为一对一事件和一对多事件,一对多事件可以对一个事件处理者进行多事件源的处理,可以帮助我们完成更复杂的操作,在这里就先不作过多的讲解,大家把一对一事件的绑定内容掌握牢固就可以完成基础的界面开发。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26582.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26582.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定