当前位置: 首页 > news >正文

事件过滤器

1.简介

事件过滤器是指在程序分发到event事件之前进行的一次高级拦截。

2.使用步骤

  • 给控件安装事件过滤器
  • 重写eventfilter事件

3.具体实现

3.1安装事件过滤器

代码:

    //给label1安装事件过滤器
    ui->label->installEventFilter(this);

3.2重写eventfilter事件

代码:

widget.h

    //重写事件过滤器的事件
    bool eventFilter(QObject *,QEvent *);

widget.cpp

//重写eventfilter事件
bool Widget::eventFilter(QObject *obj,QEvent *e)
{
    if(obj==ui->label)
    {
        if(e->type()==QEvent::MouseButtonPress)
        {
            QMouseEvent *ev=static_cast<QMouseEvent *>(e);
            QString str=QString("事件过滤器中,鼠标按下了 x=%1  y=%2  globalX=%3  globalY=%4").arg(ev->x()).arg(ev->y()).arg(ev->globalX()).arg(ev->globalY());
            qDebug()<<str;

            return true;//true代表用户自己处理这个事件,不向下分发
        }
    }
    //其他默认处理
    return QWidget::eventFilter(obj,e);
}

相关文章:

  • MySQL 面经
  • 十七、TCP编程
  • 在 Lua 中实现 JSON 与 Table 的相互转换的详细使用方法
  • 《人件》第二章 办公环境
  • CLIP中的Zero-Shot Learning原理
  • `offset_mapping` 是什么
  • C语言—程序的编译和链接
  • 【项目管理】第11章 项目成本管理-- 知识点整理
  • JVM 字节码是如何存储信息的?
  • 开源项目Syncthing-Android环境搭建与编译
  • PostgreSQL内幕探索—基础知识
  • CesiumForUnreal 本地矢量文件的加载,支持 shp/geojson 等常用格式
  • leetcode 2787. Ways to Express an Integer as Sum of Powers
  • 【MQTT-协议原理】
  • [ARC196A] Adjacent Delete 题解
  • 具身机器人中AI(DEEPSEEK)与PLC、驱动器协同发展研究:突破数据困境与指令精确控制(3)
  • 【学习笔记】两个类之间的数据交互方式
  • 01-libVLC的视频播放器:环境搭建以及介绍
  • 智能资源管理机制-重传机制
  • 使用DaemonSet部署集群守护进程集
  • 安庆网站建设服务网/关键词挖掘站长
  • 网站开发的人怎么样/seo教学免费课程霸屏
  • 网站备案跟域名备案/镇江关键字优化品牌
  • 网站的作用和意义/站长工具国色天香
  • 开源网站建设实习心得/网站免费软件
  • 外贸网站建设/免费网上销售平台