Qt笔记 事件分发

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

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

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

//在widget.h的文件下进行声明
#include <QEvent>
protected:
    bool event(QEvent *event);



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

相关推荐

  1. Qt笔记 事件分发

    2024-03-25 04:24:02       38 阅读
  2. android 事件分发笔记

    2024-03-25 04:24:02       40 阅读
  3. <span style='color:red;'>Qt</span> <span style='color:red;'>事件</span>

    Qt 事件

    2024-03-25 04:24:02      35 阅读
  4. <span style='color:red;'>Qt</span> <span style='color:red;'>事件</span>

    Qt 事件

    2024-03-25 04:24:02      33 阅读
  5. Qt事件

    2024-03-25 04:24:02       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-25 04:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-25 04:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-25 04:24:02       82 阅读
  4. Python语言-面向对象

    2024-03-25 04:24:02       91 阅读

热门阅读

  1. Qt:使用ctrl+z快捷键取消文本框修改

    2024-03-25 04:24:02       39 阅读
  2. Android Selinux详解[七]--如何给可执行程序bin加标签

    2024-03-25 04:24:02       35 阅读
  3. ES间的导数脚本

    2024-03-25 04:24:02       40 阅读
  4. clickhouse介绍

    2024-03-25 04:24:02       41 阅读
  5. 如何借助API提升产品设计的用户体验

    2024-03-25 04:24:02       38 阅读
  6. 数列特征

    2024-03-25 04:24:02       45 阅读
  7. MongoDB聚合运算符:$integral

    2024-03-25 04:24:02       39 阅读