《QT从基础到进阶·十八》QT中的各种鼠标事件QEvent
1、界面标题栏事件:
NonClientAreaMouseButtonPress 标题栏点击事件
NonClientAreaMouseButtonRelease 标题栏释放事件
bool CustomPopDialog::event(QEvent* event)
{switch (event->type()){case QEvent::MouseButtonRelease://Event of mouse releasing window titlecase QEvent::NonClientAreaMouseButtonRelease:{QMouseEvent* e = static_cast<QMouseEvent*>(event);if (e && e->button() == Qt::LeftButton){emit dragRelease(e->globalPos());}m_isPress = false;if (m_timer->isActive() == true){m_timer->stop();}}break;case QEvent::Close:{// Signal the pop-up window to destroyemit PopDialogClose(m_pWidget);m_isPress = false;if (m_timer->isActive() == true){m_timer->stop();}break;}case QEvent::NonClientAreaMouseButtonPress:{QMouseEvent* e = static_cast<QMouseEvent*>(event);if (e && e->button() == Qt::LeftButton){m_isPress = true;if (m_timer->isActive() == false){m_timer->start(10);}}break;}case QEvent::NonClientAreaMouseMove:{QMouseEvent* e = static_cast<QMouseEvent*>(event);if (m_isPress){int a = 0;}if (e){emit mouseGlobalPoint(e->pos());}break;}}return QDialog::event(event);
}
2、鼠标按下事件
mousePressEvent(QMouseEvent* event)

#include <QMouseEvent>void widget::mousePressEvent(QMouseEvent* event)
{//鼠标左键按下if (event->button() == Qt::LeftButton){//do something}//...
}
3、鼠标移动事件
mouseMoveEvent(QMouseEvent* event):
pos()函数获取鼠标指针在窗口的位置,pos().x(), pos().y()获取坐标
默认是鼠标按下移动才会触发mouseMoveEvent事件,如果不想按下鼠标移动也能触发mouseMoveEvent事件可以在构造中设置鼠标跟踪:
setMouseTracking(true); //设置鼠标跟踪
如果涉及子界面的鼠标移动事件也需要在子界面的构造中加上鼠标跟踪。
setMouseTrack无效问题:
有时候子界面响应鼠标移动父界面不响应或父界面响应子界面不响应,例如:QLabel放在QStackedWidget上,QStackedWidget放在myWidget的centerWidget上,centerWidget自动放在mainWindow上(mianWindow的中心区域),myWidget继承QWidget,这时候需要层层设置:
QLabel->setMouseTrack(true);
QStackedWidget->setMouseTrack(true);
centerWidget->setMouseTrack(true);
myWidget->setMouseTrack(true);
myWidget->parentWidget()->setMouseTrack(true);
4、鼠标移入移出事件
widget中重写鼠标移入移出事件:
void enterEvent(QEvent* event); //鼠标移入界面触发
void leaveEvent(QEvent* event); //鼠标移出界面触发
5、鼠标释放事件
鼠标按下后在松开鼠标触发。
mouseReleaseEvent(QMouseEvent *event):
6、鼠标双击事件
双击鼠标触发
mouseDoubleClickEvent(QMouseEvent *event):

7、鼠标滚轮事件
event->delta()数值,角度 * 8 = delta()

//demo
void THM_CT::wheelEvent(QWheelEvent * event)
{// …m_currentIndex += event->delta() / 500.0;r_image=image.scaled(image.width()*currentIndex,image.height()*currentIndex,Qt::IgnoreAspectRatio, Qt::SmoothTransformation); //图片缩放
}
最后:
如果在QGraphicsView中无法触发鼠标事件,这是因为鼠标事件是被QGraphicsView里面的viewport截取了,在viewport上安装一个事件过滤器,通过事件过滤来截取鼠标事件,实现鼠标事件的透传。

📢博客主页: 主页
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 梦回阑珊 原创,首发于 CSDN,转载注明出处🙉
📢代码改变世界,你来改变代码!✨
相关文章:
《QT从基础到进阶·十八》QT中的各种鼠标事件QEvent
1、界面标题栏事件: NonClientAreaMouseButtonPress 标题栏点击事件 NonClientAreaMouseButtonRelease 标题栏释放事件 bool CustomPopDialog::event(QEvent* event) {switch (event->type()){case QEvent::MouseButtonRelease://Event of mouse releasing wind…...
CSDN中调整图片和文本样式
1.调整图片比例 插入图片后,觉得图片比例不协调,想改小点。只需要在文件后缀加个参数即可:?pic_center 60x。 NOTE:等号左边一定要加个空格,否则格式不生效 2.修改字体颜色 如上 NOTE:等号左边一定要…...
社区团购商品数据抓取
爬虫程序的实现需要使用到C#编程语言以及相关爬虫框架,如Scrapy、WebScraper等。以下是一个简单的示例,展示了如何使用C#爬取网站上的商品数据: using System; using System.Net; using System.IO; using HtmlAgilityPack;class Program {st…...
Nginx用做sip代理
https://www.jianshu.com/p/14d134cbf8d3?tdsourcetags_pcqq_aiomsg 看了这篇文章的方案一,我专门试了试,记录如下: 测试环境为: fs1(5080 --- nginx --- fs2(5060) 局域网同一个网段&…...
C# set的一些使用方法
在C#应用中,使用set监控值的改变触发事件是一种非常常见的编程模式。 比如下面一些应用。 1、属性更改通知:当某个属性的值发生变化时,可以使用set监控属性的改变,并触发一个事件来通知其他部分代码。这在MVVM(Model…...
机器学习——回归
目录 一、线性回归 1、回归的概念(Regression、Prediction) 2、符号约定 3、算法流程 4、最小二乘法(LSM) 二、梯度下降 梯度下降的三种形式 1、批量梯度下降(Batch Gradient Descent,BGD)ÿ…...
JAVA代码视频转GIF(亲测有效)
1.说明 本次使用的是JAVA代码视频转GIF,maven如下: <dependency><groupId>ws.schild</groupId><artifactId>jave-nativebin-win64</artifactId><version>3.2.0</version></dependency><dependency&…...
挑战100天 AI In LeetCode Day03(热题+面试经典150题)
挑战100天 AI In LeetCode Day03(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-52.1 题目2.2 题解 三、面试经典 150 题-53.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&am…...
【手写模拟Spring底层原理】
文章目录 模拟Spring底层详解1、结合配置类,扫描类资源1.1、创建需要扫描的配置类AppConfig,如下:1.2、创建Spring容器对象LyfApplicationContext,如下1.3、Spring容器对象LyfApplicationContext扫描资源 2、结合上一步的扫描&…...
代码随想录训练营Day1:二分查找与移除元素
本专栏内容为:代码随想录训练营学习专栏,用于记录训练营的学习经验分享与总结。 文档讲解:代码随想录 视频讲解:二分查找与移除元素 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚…...
回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测
回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测 目录 回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现PCA-PLS主成分降维结合偏小二乘回归预测(完整源码和数据) 1.输…...
高效的测试覆盖率:在更短的时间内最大化提高测试覆盖率
软件测试在敏捷开发生命周期中至关重要,而测试覆盖率又是软件测试的一个重要指标,有效的测试覆盖率对软件测试来说永远是重中之重。测试覆盖率确保所有关键功能和特性都经过彻底测试,减少最终产品中出现错误和错误的可能性(取决于…...
Qt 项目实战 | 音乐播放器
Qt 项目实战 | 音乐播放器 Qt 项目实战 | 音乐播放器播放器整体架构创建播放器主界面媒体对象状态实现播放列表实现桌面歌词添加系统托盘图标 资源下载 官方博客:https://www.yafeilinux.com/ Qt开源社区:https://www.qter.org/ 参考书:《Q…...
JavaScript使用Ajax
Ajax(Asynchronous JavaScript and XML)是使用JavaScript脚本,借助XMLHttpRequest插件,在客户端与服务器端之间实现异步通信的一种方法。2005年2月,Ajax第一次正式出现,从此以后Ajax成为JavaScript发起HTTP异步请求的代名词。2006…...
Python爬虫实战-批量爬取美女图片网下载图片
大家好,我是python222小锋老师。 近日锋哥又卷了一波Python实战课程-批量爬取美女图片网下载图片,主要是巩固下Python爬虫基础 视频版教程: Python爬虫实战-批量爬取美女图片网下载图片 视频教程_哔哩哔哩_bilibiliPython爬虫实战-批量爬取…...
uniapp+uview2.0+vuex实现自定义tabbar组件
效果图 1.在components文件夹中新建MyTabbar组件 2.组件代码 <template><view class"myTabbarBox" :style"{ backgroundColor: backgroundColor }"><u-tabbar :placeholder"true" zIndex"0" :value"MyTabbarS…...
opencv 任意两点切割图像
目录 opencv python直线切割图像,把图像分为两个多边形 升级版,把多边形分割抠图出来,取最小外接矩形:...
rust变量绑定、拷贝、转移、引用
目录 一,clone、copy 1,基本类型 2,类型的clone特征 3,显式声明结构体的clone特征 4,类型的copy特征 5,显式声明结构体的clone特征 5,变量和字面量的特征 6,特征总结 二&am…...
Java多种方式向图片添加自定义水印、图片转换及webp图片压缩
给个创建水印的示例: /*** 获取水印** param watermarkText 水印文字* return 水印bufferimage*/public static BufferedImage getWatermark(String watermarkText) {BufferedImage measureBufferdImage new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB…...
基于Pytorch框架的LSTM算法(二)——多维度单步预测
1.项目说明 **选用Close和Low两个特征,使用窗口time_steps窗口的2个特征,然后预测Close这一个特征数据未来一天的数据 当batch_firstTrue,则LSTM的inputs(batch_size,time_steps,input_size) batch_size len(data)-time_steps time_steps 滑动窗口&…...
别再为微调大模型发愁了!用LoRA+百川7B,单张消费级显卡也能玩转指令微调
单卡玩转百川7B指令微调:LoRA技术实战指南 当ChatGPT掀起大模型热潮时,许多开发者都面临一个现实困境:如何在有限的硬件资源下实现大语言模型的定制化?本文将揭示一个突破性解决方案——通过LoRA技术对百川7B模型进行高效指令微调…...
d2s-editor:暗黑破坏神2存档编辑器的终极免费解决方案
d2s-editor:暗黑破坏神2存档编辑器的终极免费解决方案 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor d2s-editor是一款基于Web的暗黑破坏神2存档编辑器,专为《暗黑破坏神2》玩家和模组开发者设计&#x…...
避开F28377D eCAP配置的那些坑:GPIO异步模式、InputXbar与中断标志位清理详解
TMS320F28377D eCAP模块深度避坑指南:从GPIO异步模式到中断标志位全解析 当你在电机控制项目中第一次看到霍尔传感器输出的波形被eCAP模块完美捕获时,那种成就感无与伦比。但现实往往更骨感——大多数工程师在配置F28377D的eCAP模块时,都会遇…...
VLC for Android跨平台多媒体应用架构设计与大屏优化实现
VLC for Android跨平台多媒体应用架构设计与大屏优化实现 【免费下载链接】vlc-android VLC for Android, Android TV and ChromeOS 项目地址: https://gitcode.com/gh_mirrors/vl/vlc-android VLC for Android作为一款跨平台的多媒体播放解决方案,在Androi…...
飞书审批对接-自建企业应用的主要作用
自建企业应用在第三方系统对接飞书审批流程中扮演着核心枢纽的角色!让我详细解释它的作用和与审批表单的关系。1. 自建企业应用的主要作用1.1 身份认证和权限中心javascript// 自建应用负责处理所有API调用的认证 class FeishuAppAuth {constructor(appId, appSecre…...
VideoSrt:5分钟搞定专业视频字幕的智能工具
VideoSrt:5分钟搞定专业视频字幕的智能工具 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows 还在为视频字幕制作耗费大量时…...
别再死记Laplacian滤波公式了!用‘加速度’和‘均匀坡道’的比喻彻底搞懂二阶差分
别再死记Laplacian滤波公式了!用‘加速度’和‘均匀坡道’的比喻彻底搞懂二阶差分 想象你正驾驶一辆车行驶在公路上,仪表盘显示的速度表指针始终保持在60km/h——这时你的加速度为零,说明车辆处于匀速状态。突然前方出现急转弯,你…...
从农田到屏幕:手把手教你用Python和SNAP批量处理哨兵2号影像,估算作物叶面积指数
从农田到屏幕:手把手教你用Python和SNAP批量处理哨兵2号影像,估算作物叶面积指数 当清晨的阳光洒在万亩麦田上,每一片叶子都在进行着光合作用的精密计算。对于现代农业科技从业者而言,这片绿色海洋中隐藏的数据密码——叶面积指数…...
从Modbus到蓝牙:CRC16校验在常见通信协议里的实战应用与C语言代码适配
从Modbus到蓝牙:CRC16校验在常见通信协议里的实战应用与C语言代码适配 在工业控制和物联网开发中,数据完整性校验是确保通信可靠性的第一道防线。CRC16作为轻量高效的校验算法,几乎出现在所有主流通信协议中,但开发者常陷入一个误…...
基于海外数据本地化政策的边缘计算网关脱敏架构与Python实战
摘要: 随着储能系统在全球范围的大规模部署,海外监管机构对工业互联网接入层的数据出境合规与隐私审查愈发严厉。忽视边缘端的数据本地化处理不仅会导致并网测试挂科,更可能引发巨额罚款。本文从底层研发架构师视角出发,深度拆解符…...
