【QT】事件过滤器

事件过滤器
1、给控件安装过滤器

2、重写过滤器事件bool eventFilter(两个参数);

基于上一个项目:【QT】事件分发器-CSDN博客

我的代码有问题,不能实现事件过滤器的功能,先记录下来

在头文件中要声明该函数。

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QMouseEvent>


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 利用事件过滤器拦截鼠标按下事件
    // 1给控件安装过滤器
    ui->label->installEventFilter(this);

}



// 2重写过滤器事件
// 过滤器事件
// 参数一:判断控件
// 参数二:判断事件
bool Widget::eventFiltter(QObject* obj, QEvent* ev) {
    // 是label标签 并且 鼠标按下
    if (obj == ui->label) {
        if (ev->type() == QEvent::MouseButtonPress) {
            // 转换一下
            QMouseEvent* e = static_cast<QMouseEvent*>(ev);
            QString str = QString("在事件过滤器中鼠标按下, x = %1, y = %2").arg(e->x()).arg(e->y());
            qDebug() << str;
            // 拦截
            return true;
        }
    }
    return QWidget::eventFilter(obj, ev);
}

Widget::~Widget()
{
    delete ui;
}
相关推荐
萨小耶7 分钟前
[Java学习日记11】聊聊深拷贝和浅拷贝
java·开发语言·学习
一只豌豆象10 分钟前
第3讲:单端传输线的时域TDR仿真(基于实战的第一次仿真视角切换)
学习·信号完整性·cst·仿真实战
txh050721 分钟前
从零开始学习FOC
单片机·嵌入式硬件·学习
云和数据.ChenGuang25 分钟前
深度学习在鲲鹏HPC下的学习
人工智能·深度学习·学习·机器学习·数据挖掘
MartinYeung528 分钟前
[论文学习]使用使用者层级差分隐私(User-Level DP)微调大型语言模型(LLM)
人工智能·学习·语言模型
走好每一步29 分钟前
0、VDK编译 CMake + VS2017 x64
qt·vtk·三维图像
小乌龟打怪升级1 小时前
英语学习之每日单词
学习·英语单词
星夜夏空991 小时前
FreeRTOS学习(11)——信号量
单片机·学习
minglie11 小时前
zynq的网口和串口透传
学习
神奇的小猴程序员1 小时前
学习查理・芒格思维模型,整理自用资料查阅渠道
学习