wxPython的事件处理
来源:互联网 发布:程序员鼓励师是真的吗 编辑:程序博客网 时间:2024/05/20 03:48
事件绑定器:描述组件、事件类型号与事件响应间的关联——实际上是事件类型号的对应实例
wx.EvtHandler:创建某一类型的事件绑定器、事件源与事件响应的绑定
每一EvtHandler保存一张格式为(事件类型,事件源(可选),事件响应)的事件触发表(cf. wxWidgets)
事件处理过程:
1. 事件被触发,创建事件实例,交给事件源的EventHandler.ProcessEvent
2. EventHandler.ProcessEvent检查是否允许处理事件,是则转3,否则转5
3. 检查EventHandler的触发表与其父类的触发表,是否有合适的事件响应,是则转4,否则转5
4. 调用事件响应,若事件响应最后调用了事件实例的Skip()则转5,否则转8
5. 是否是应当广播的事件(CommandEvent与其子类)?是则转6,否则转8
6. 是否处理事件的EventHandler是TheApp?是则转9,否则转7
7. 把事件交给其容器,转2
8. 把事件转交给TheApp处理,转9
9. 结束
一个事件的定义包括:
1. 用wx.NewEventType()定义一个新的事件类型号(整数ID)
2. 用wx.PyEventBinder(事件类型号,事件源的个数(0到2))定义新的事件绑定器
3. 定义一个事件类,接受事件类型号与事件源ID为构造参数,添加一些附加属性
4. 在底层事件源的底层事件响应中,
1. 产生这个事件类的实例
2. 设置附加属性
3. 调用self.GetEventHandler().ProcessEvent(该事件实例) #即等效于把该事件加入处理队列并立即处理之
5. 在高层窗口,用Bind绑定(事件绑定器,事件响应,底层事件源)
- wxPython的事件处理
- wxPython的事件处理过程详解
- wxPython事件处理
- wxPython事件处理
- wxPython:事件处理介绍一
- wxPython:事件处理介绍二
- wxpython的事件列表
- 给wxPython事件处理函数传递参数
- wxPython的event处理机制
- wxPython事件
- wxPython事件
- wxpython事件
- wxPython的键盘事件Keycodes(键值)
- wxPython中多线程处理的研究
- wxPython之响应事件
- wxPython中自定义事件
- wxPython 事件驱动
- wxpython 事件驱动
- MFC Paint的流程
- c++堆排序算法的实现
- const volatile int i = 10
- eclipse不能自动编译生成class文件的解决办法
- ubuntu 命令行模式和图形界面切换
- wxPython的事件处理
- Redis系列-存储篇sorted set主要操作函数小结
- Android中SQLite应用详解
- ubuntu-12.10-desktop-i386安装注意事项(备忘录)
- 互联网时代的时间管理实践
- 自动连接VPN
- Could not initialize class org.eclipse.jface.preference.PreferenceConverter
- 用C自己编写telnet服务器
- memory:arm 分区layout以及虚拟内存布局-小结