语言/QT {eventFilter事件过滤器}
eventFilter事件过滤器
定义
任何对象 最多有一个 事件过滤器, 通过A.installEventFilter( B);
(表示B在监听A, B是A的事件过滤器, 注意A可以等于B
), 表示A发生的任何事件 最先会交给B (即调用bool ret = B.eventFilter( A, 事件)
函数), 如果ret==1
表示事件被过滤了 就当作该事件消失了, 否则的话 A正常发生了该事件(即事件过滤器是在正常事件机制之上 又封装了一层) 即随后调用A.event( 事件)
;
事件
定义
当A发生了事件e
:
0: 如果A有事件过滤器B(如果没有 则进入下一步), 执行bool ret = B.eventFilter( A, e)
, 如果ret==1
则终止, 否则进入下一步;
1: 执行bool ret = A.event( e)
, 如果ret==0