【QT】父子按钮同时响应点击事件

QPushButton如何响应点击事件

QPushButton::event(QEvent *e)
image.png。可以看到在QPushButton中的event函数中并没有鼠标点击相关的操作,那么我们去QAbstractButton::event中寻找
image.png
damn it!。依然没有那我们去QWidget::event中寻找
image.png
damn it! 只有mousePressEvent mouseReleaseEvent mouseDoubleClickEvent,没有单击事件。别急,先告诉你单击事件实际分成了两个部分,一个鼠标按下和一个鼠标释放(弹起)事件组成。OK了 根据多态我们回到 QPushButton.cpp中查看mousePressEventmouseReleaseEvent即可。但是QPushButton并没有重写这两个事件,所以还是得从QAbstractButton中找
image.png 好了,到此结束。

事件的传递机制

这里我们着重看一下鼠标事件的传递机制 bool QApplication::notify(QObject *receiver, QEvent *e)
image.png
关键代码:

eventAccepted = (w == receiver ? mouse : &me)->isAccepted();
if (res && eventAccepted)break;
if (w->isWindow() || w->testAttribute(Qt::WA_NoMousePropagation))break;

我们将 eventAccepted 设置为 false 就可以让这个按钮的事件传递给它的父亲了。

继承QPushButton重写事件处理函数

void MyPushButton::mousePressEvent(QMouseEvent *e)
{QAbstractButton::mousePressEvent(e);e->ignore();
}void MyPushButton::mouseReleaseEvent(QMouseEvent *e)
{QAbstractButton::mouseReleaseEvent(e);e->ignore();
}

效果

3.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode165.比较版本号,简单模拟

leetcode165.比较版本号 给你两个 版本号字符串 version1 和 version2 ,请你比较它们。版本号由被点 ‘.’ 分开的修订号组成。修订号的值 是它 转换为整数 并忽略前导零。 比较版本号时,请按 从左到右的顺序 依次比较它们的修订号。如果其中一个版本字…

主流摄像机:海康、大华、宇视、华为等RTSP格式

主流摄像机:海康、大华、宇视、华为等RTSP格式 解决方案速览海康摄像机大华摄像机宇视摄像机华为摄像机 解决方案速览 品牌rtsp格式rtsp举例海康rtsp://[username]:[password][ip]:[port]/[codec]/[channel]/[subtype]/av_streamrtsp://admin:admin123192.168.1.10…

libcef.dll丢失的解决方法-多种libcef.dll亲测有效解决方法分享

libcef.dll是Chromium Embedded Framework (CEF)的核心动态链接库,它为开发者提供了一个将Chromium浏览器嵌入到本地桌面应用程序中的解决方案。这个库使得开发者能够利用Chromium的强大功能,如HTML5、CSS3、JavaScript等,来创建跨平台的应用…

罕见!史诗级“大堵船”

新加坡港口的停泊延误时间已延长至7天,积压的集装箱数量达到惊人的450000标准箱,远超新冠疫情暴发时期的数轮高点。业内认为,近期东南亚恶劣的天气情况加剧了该区域港口拥堵。 5月31日,上海航运交易所(下称“航交所”…

重生奇迹MU召唤师如何学习狂暴术?

一、了解狂暴术的基本信息 狂暴术是一种非常强大的技能,可以让召唤师的攻击力和防御力大幅度提高,但同时也会增加自身的伤害。在使用狂暴术之前,召唤师需要仔细考虑自己的状态和对手的情况。 二、学习狂暴术的方法 1.通过任务学习 在游戏…

Docker安装与使用 --学习笔记

一、概述 Docker是什么? Docker是一种工具,类似于一个虚拟箱子,可以把软件和它运行所需要的环境打包放进这个箱子里。这样,无论这个箱子放到哪里,软件都能像在原来的地方一样运行,不会因为换了地方就出问题。 假设…

uniapp使用数据持久化存储

什么是持久化存储 持久化存储是指将数据存储在非易失性介质中,以保证数据在系统重启或断电后仍能保持不变。这种存储方式确保数据持久存储并且可靠地被读取和访问, 简答来说:就是防止丢失,长期存储 为什么要用持久化存储 Pini…

leetcode5 最长回文子串

给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cbbd" 输…

【Java】一文看懂Thread 线程池的 7 种创建方式、任务队列及自定义线程池(代码示例)

本文摘要:【Java】Thread 线程池的 7 种创建方式及自定义线程池(代码示例版) 😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专…

编写一款2D CAD/CAM软件(十九)点选图形

点选图元原理 设定鼠标敏感范围,比如选中鼠标点击位置5个像素内距离最近的图元;当鼠标点击时,求解点击位置在几何坐标系下坐标点与附近几何图元的距离;如果到图元距离小于设定的鼠标敏感范围,则视为图形可选中;进一步,如果多个图元满足被选中的条件,则只选中距离最近的…

彩灯控制器设计 74ls160+ne555实现

一、选题背景 数字电子技术在我们生活中的应用非常之广泛,不论是在各个方面都会涉及到它,小到家用电器的自动控制,大到神舟九号和天空一号航天器的设计,都无可避免的要运用它。并且鉴于以理论推动实践及理论实践相结合为指导思想,特此用我们所学的理论知识来实践这次课程设…

低空经济国外经验及发展重点

国外先进经验 1.精准分类管理 美国将空域划分五大类,主要包括A类(高空管制空域)、B类(繁忙终端管制空域)、C类(一般终端管制空域)、D类(机场管制空域)和E类&#xff08…

UVa12273/LA4958 Palindromic DNA

UVa12273/LA4958 Palindromic DNA 题目链接题意分析AC 代码 题目链接 本题是2010年icpc欧洲区域赛西南欧赛区的的E题 题意 DNA由四种核苷碱基A、G、T、C组成,它们形成环状排序。当今能对DNA进行修改(但不能同时对相邻位置进行修改)&#xff…

【云原生】Docker Compose 使用详解

目录 一、前言 二、Docker Compose 介绍 2.1 Docker Compose概述 2.2 Docker Compose特点 2.3 Docker Compose使用场景 三、Docker Compose 搭建 3.1 安装docker环境 3.2 Docker Compose安装方式一 3.2.1 下载最新版/如果不是最新可替换最新版本 3.2.2 设置权限 3.2.…

Q-Learning 简介:初学者教程(1)

一、说明 强化学习强调无模型学习算法,因此出现Q-Learning,Q-Learning算法酷似“有限状态自动机”模型,只是增加了奖励机制和Agent机制,而Agent与粒子群算法、蒙特卡洛算法是有关的。本文介绍这个算法框架。 , 二、QL框…

项目管理之maven svn

管理jar包之间依赖关系 编译、打包、清理、测试等一系列构建工具 一、Maven的标志 1、每一个maven工程都有一个pom.xml maven项目坐标 <groupId>com.aaa</groupId>//项目路径 <artifactId>web</artifactId>项目名称 <version>0.0.1-SNAPS…

C语言—深入理解指针(5)

1. sizeof 和 strlen 的对比 1.1 sizeof 在学习操作符的时候&#xff0c;我们学习了 sizeof&#xff0c;sizeof 是计算变量所占内存空间大小的&#xff0c;单位是字节&#xff0c;如果操作数是类型的话&#xff0c;计算的是使用类型创建的变量所占内存空间的大小。 sizeof 只…

西瓜播放器xgplayer设置自动播放踩坑

上图是官网&#xff08;西瓜视频播放器官方中文文档&#xff09;的介绍&#xff0c;相信大家都是按照官网配置去做的&#xff0c;但是并没有什么用&#xff0c;插件很好用&#xff0c;但是属性不全&#xff0c;真的很悔恨&#xff0c;找遍 api 都没有找到自动播放的属性&#x…

基于BERT+LSTM+CRF深度学习识别模型医疗知识图谱问答可视化系统

基于BERT+LSTM+CRF深度学习识别模型的医疗知识图谱问答可视化系统是一个综合性的系统,它结合了深度学习技术和知识图谱技术,为医疗领域提供了高效、准确的信息查询和问答服务。以下是该系统的详细介绍: 一、系统概述 该系统通过构建医疗领域的知识图谱,结合BERT+LSTM+CRF…

MongoDB-4.2.1 之安装和使用

安装 下载安装包 我自己电脑是 Windows7 的老古董&#xff0c;所以就下载老版本的 MongoDB。 mongodb: https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.1.zip 解压安装包到指定路径 我解压到的 C 盘 C:\mongodb-4.2.1 添加环境变量 创建数据库和…