1.定义新事件类型
在widget中定义新的事件类型。
此处以存在的WindowLevel事件为例,看如何监听到我们想要的WindowLevel事件。
如下是WindowLevel改变的前后效果图。
2.定义新事件的产生条件
在widget中,指定新事件判断条件,在预期场景下可正常得到事件状态。
3.定义widget中新事件的处理动作
在widget中,依据当前事件状态,在执行函数中进行相关的动作实现。
若是不需要widget层处理,可直接将事件消息抛出去就可以。
注意事项:在widget层做的更多的是当前widget的处理动作,若是需要依据当前widget实例状态控制其他widget实例动作,这里是不方便拿到其他widget实例的。
4.定义callback中新事件的处理动作
若是希望将事件处理动作放到vtkCommad子类回调中操作,可以在回调Execute函数中做事件处理动作。
这样做的好处是,尽可能少的修改了vtkSource源码。
2.在widget中添加新事件上报
3.添加新事件到监听事件列表