请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。
创建自定义事件的步骤:
定义事件类,该事件类必须继承自wx.PyCommandEvent,并定义get和set方法来获取和设置事件参数。
创建一个事件类型和一个绑定器对象去绑定该事件到特定的对象。
创建自定义事件对象,设置事件参数,并且使用ProcessEvent()方法将这个实例引入事件处理系统。
绑定自定义事件的event handler。
在event handler中响应事件。
代码:
说明:
#1.定义MyTestEvent 类为wx.PyCommandEvent的子类,wx.PyCommandEvent是wxPython特定的结构,可以用来创建新的事件类并且可以把C++类和你的Python代码连接起来。
#2. wx.NewEventType()类似于wx.NewId();它返回一个唯一的事件类型ID。
#3.创建一个绑定器对象,第二个参数的取值位于[0,2]之间,它代表wxId标识号,该标识号用于wx.EvtHandler.Bind()方法去确定哪个对象是事件的源。
#4.绑定事件的处理器。
#5. 创建自定义事件对象,并把触发事件的控件的ID作为参数传给MyTestEvent的构造函数。
#6.添加数据给事件。可以将一些您需要的信息通过这种方法传递进去。
#7. ProcessEvent()的调用将这个新事件引入到事件处理系统中,GetEventHandler()调用返回wx.EvtHandler的一个实例,也就是窗口对象本身,即:MyFrame。
#8.绑定事件处理函数,这里的事件处理方式是通过MessageDialog显示出传入的事件参数。
--参考《wxPython in action》