005_关于QT之QWidget的事件处理机制

一、eventFilter函数

事件过滤函数,一般用于容器组件来决定是否将事件传递给子组件。当前组件的事件过滤函数,在事件直接发生在当前组件时该组件的过滤函数是不被调用的。

二、event函数

用于组件内部事件函数的分发,在这个函数内部调用事件的e.ignore()或者e.accept()是无效的。

三、ignore()或者accept()

ignore()忽略当前组件对事件的处理,继续往父组件抛事件。accept()表示当前组件已经对事件做了处理。如果不显示调用ignore()或者accept(),那么默认就是accept()函数。

四、事件处理流程

  1. 父组件的过滤函数——>事件发生组件的event函数
  2. 事件发生组件的event函数——>事件发生组件的具体事件函数
  3. 如果具体事件函数不处理事件——>那么就往父组件event函数抛
  4. 如果具体事件函数处理事件——>那么整个事件消费结束

你可能感兴趣的:(C与C++,qt,开发语言)