QT:event事件分发器,事件过滤器(了解)

news/2025/2/11 22:46:00/

Event事件分发器

用于事件的分发
可以用事件分发器做拦截,从而不进入到后面的虚函数中,但是不建议
bool event(QEvent *e);
返回值 如果是true 代表用户处理这个事件,不向下进行分发
e->type()==中可选择进行拦截的类型
//事件分发器的event事件bool event(QEvent *e);
bool MainWindow::event(QEvent *e)
{//如果是鼠标按下,在event事件中分发中做拦截操作if(e->type() == QEvent::MouseButtonPress){QMouseEvent *ev = static_cast<QMouseEvent *>(e);QString str = QString ("事件分发函数中,鼠标按下 x= %1 y= %2").arg(ev->x()).arg(ev->y());qDebug()<<str;return true;}//其他事件交给父类处理return QWidget::event(e);
}

事件过滤器:

通过事件过滤器,可以在程序分发到event事件之前再做一次高级拦截
使用:给控件安装事件过滤器;重写eventfilter事件
//事件过滤器的eventFilter事件bool eventFilter(QObject *o, QEvent *e);
bool MainWindow::eventFilter(QObject *o, QEvent *e)
{if(o==ui->label_2){if(e->type() ==QEvent::MouseButtonPress){QMouseEvent *ev = static_cast<QMouseEvent *>(e);QString str = QString ("事件过滤器中,鼠标按下 x= %1 y= %2").arg(ev->x()).arg(ev->y());qDebug()<<str;return true;}}return QWidget::eventFilter(o,e);   //其他的默认处理
}

http://www.ppmy.cn/news/1041396.html

相关文章

ZooKeeper(zk)与 Eureka 的区别及集群模式比较分析

​ 作者&#xff1a;zhaokk 推荐阅读 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 「java、python面试题」来自UC网盘app分享&#xff0c;打开手机app&#xff…

算法修炼Day51|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费

LeetCode:309.最佳买卖股票时机含冷冻期 309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 1.思路 初始化dp[i][j]数组&#xff0c;表示第i天的最大利润为dp[i][j]. 精确的定义状态是个难点&#xff0c;可以定义四种状态&#xff1a;持有股票&#…

vue3setup标签语法 + vite + delfin 递归组件实现无限评论功能

1、 功能效果 在线预览&#xff1a;https://szhihao.gitee.io/comment/ gitee仓库地址&#xff1a;https://gitee.com/szhihao/comment 2、实现的具体技术点 根据不同的人名可以进行评论&#xff08;tap切换&#xff09; 对进行的评论可以无限进行回复&#xff08;递归组件和…

使用pysnmp报错lambda错误

pip install pyasn10.4.8 pysnmp4.4.12 python - Takes exactly 3 arguments (4 given) - Stack Overflow

机器学习|DBSCAN 算法的数学原理及代码解析

机器学习&#xff5c;DBSCAN 算法的数学原理及代码解析 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种基于密度的聚类算法&#xff0c;它能够有效地发现任意形状的聚类簇&#xff0c;并且可以识别出噪声点。在本文中&…

Redis可以作为关系型数据库使用吗?

探索在 Java Spring 中使用 Redis 是多么容易&#xff0c;并找到与关系数据库的五个不同之处。 让我们从“你如何使用Redis&#xff1f;”这个问题开始。我确信大多数人都将其用作服务的缓存。我希望您知道它可以做的不仅仅是这些。最近&#xff0c;我在一次会议上发表了一份报…

JAVA编程学习笔记

常用代码、特定函数、复杂概念、特定功能……在学习编程的过程中你会记录下哪些内容&#xff1f;快来分享你的笔记&#xff0c;一起切磋进步吧&#xff01; 一、常用代码 在java编程中常用需要储备的就是工具类。包括封装的时间工具类。http工具类&#xff0c;加解密工具类&am…

k8s v1.27.4二进制部署记录

记录二进制部署过程 #!/bin/bash#升级内核 update_kernel() {rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgyum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpmyum --disablerepo"*" --enablerepo"elrepo-kernel&q…