当前位置:   article > 正文

Qt笔记 事件分发

Qt笔记 事件分发

        我们知道,事件的产生和处理主要分为四个部分,事件产生,事件过滤,事件分发以及事件处理

        实际上,在事件分发和事件处理之间,事件分发器会调用一个函数叫做event,这个event所代表的含义就是我们用户要处理的这个事件,多数情况下我们对事件做任何处理,而是由事件处理函数来进行处理。当然我们也可以设置event函数来拦截事件,这样就不会分发到对应的事件处理函数上,而是在event函数就处理完了。一般来说,我们不推荐这样使用,但是我们得知道。

        总的来说,widget的event方法就是在处理函数调用之前进行拦截,可以针对一些事件在处理进行特殊处理。

  1. //在widget.h的文件下进行声明
  2. #include <QEvent>
  3. protected:
  4. bool event(QEvent *event);
  5. //在widget.cpp的文件下进行定义
  6. bool Widget::event(QEvent *event)
  7. {
  8. if(event->type() == QEvent::MouseButtonPress)//拦截鼠标点击事件
  9. {
  10. qDebug() << "鼠标按键被按下";
  11. return true;
  12. }
  13. return QWidget::event(event);//对于其他的事件,我们交给父类的event来处理,父类的event我们没有做任何的修改,这样其他事件还是会去找事件处理函数进行处理
  14. }
  15. //这样就可以在调用事件处理函数之前,对一些事件进行特殊处理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/292772
推荐阅读
相关标签
  

闽ICP备14008679号