vtk事件机制理解

vtk也玩了一个月了,对事件机制总是模模糊糊的,今天整理一下,本文主要是关于style和command的关系。
举个例子,本来你的style就有点击事件,你又通过conmand加了一个点击callback,那么自带的和添加的是什么关系呢,实际上style中的事件和你添加的command没有什么区别,都是command类型的事件,所有的事件保存在一个名称为SubjectHelper当中,当有事件调用时,就会去当中查找,找到就直接调用。
那么目前情况是自带的command与我们定义的command优先调用哪个呢,~~ 实在Addobserver时候有一个priority参数,可以设置优先级,自带command默认优先级是0,
而我们调用Addobserver时缺省第三个参数的话优先级也是0,但是实际上优先调用style中的command(猜测由于style中的是先加入的,所有当优先级相同的时候就调用先加入的)
所以我们可以设定优先级来控制commad的顺序。那么我们想完全覆盖style中的某个cmomand只需要设定高一点的优先级,并且在执行完你自己的命令后,最后加上一句 vtkCommand::AbortFlagOn();(这样style中的command)j就永远不会执行了~~
如果有额外的command添加到style上则覆盖原来style中的事件,如果事件添加到interactor上那么就都会执行(没有提前终止的话)关于执行顺序还没有
对于widget,widget事件默认优先级是0.5,所以widget事件优先于普通事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值