一、认识事件
上次我们讲完了wx中的Panel面板,今天我们就来说一说关于事件。事件就是指在当前frame窗口中由用户与机器交互时人为产生的要求机器捕获并处理的动作,统称为事件,而机器捕获到事件称为捕获事件,机器捕获后对其执行称为响应事件,从捕获到响应这段时间称为响应时间,响应事件后要执行一些动作,通常为调用函数来实现反应用户的操作。事件通常可以是一个按钮被按下、鼠标移动、键盘按键捕获。wxPython可以处理的事件很多,这里不再过多叙述,大家可以另行了解,或查阅wxPython帮助文件。
事件处理的过程涉及4个要素:
- 事件。 它是用户对界面操作,在wxPython中事件被封装成事件类wx.Event及其子类,例如按钮事件类wx.CommandEvent。
- 事件类型。 事件类型给出了更多地信息,它是一个整数
- 事件源。 它是事件发生的场所,就是各个控件,例如按钮事件的事件源是按钮
- 事件处理者。 它是在wx.EvtHeadler子类(事件处理类)中定义的一个方法
认识了事件,我们下面来看看语法。
二、绑定事件
绑定事件,顾名思义,就是将控件和执行的方法关联在一起。那么如何绑定呢?就用wx提供的Bind函数来绑定就行了。话不多说,先上语法:
Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY)
事件绑定后,单击绑定的控件,就可以执行相应的方法。
下面来讲讲Bind方法的参数:
1.self参数:指的是谁来绑定,self是自动传参,形参时写上,实参时不用,由于非常简单,这个不讲。
2.event参数:这里有一个易错点,注意参数event是一个事件类型,不是事件。
3.handler参数:指定处理函数,注意只写名称不带括号。
4.source参数:事件源,可省略,用id来指定控件。
5.id参数:该参数指定控件id,只能写