《QT从基础到进阶·十七》QCursor鼠标的不同位置坐标获取

一些常用鼠标图形:
在这里插入图片描述

鼠标光标相对于整个电脑屏幕的位置:QCursor::pos()

当前光标相对于当前窗口的位置:this->mapFromGlobal(QCursor::pos())

void MainWindow::mouseReleaseEvent(QMouseEvent* event)
{QPoint pos = event->pos();                        //相对于当前窗口的位置QPoint globalPos = event->globalPos();    //相对于屏幕的全局绝对位置
}
QWidget *widget = new QWidget(); 
widget.pos(); //窗体的左上角的位置

在事件中如果操作的界面不响应,比如进入某个界面改变鼠标形状没反应,这时可以试试调用过滤器:

this->viewport()->setCursor(Qt::CrossCursor); 
this->viewport()->update();

获取子窗口geometry,判断是否包含光标所在的坐标,如果是,则表示光标正悬浮在该子控件上。
注意geometry()是相对于父窗口的相对位置,而QCursor::pos()获取的是鼠标绝对位置。需要进行一次转换,要不将父窗口的相对位置进行换算,要不将鼠标的绝对位置进行换算,这里采用将鼠标绝对位置换算到控件上,示例代码如下:

if(ui->pushButtonTest->geometry().contains( this->mapFromGlobal(QCursor::pos()))) {//do something...}
在这里插入图片描述

📢博客主页: 主页
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 梦回阑珊 原创,首发于 CSDN,转载注明出处🙉
📢代码改变世界,你来改变代码!✨

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

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

相关文章

设计模式1

![在这里插入图片描述](https://img-blog.csdnimg.cn/c9fbecf1ae89436095885722380ea460.png)一、设计模式分类: 1、创建型模式:创建与使用分离,单例、原型、工厂、抽象、建造者。 2、结构型模式:用于描述如何将对象按某种更大的…

智慧工地源码:助力数字建造、智慧建造、安全建造、绿色建造

智慧工地围绕建设过程管理,建设项目与智能生产、科学管理建设项目信息生态系统集成在一起,该数据在虚拟现实环境中,将物联网收集的工程信息用于数据挖掘和分析,提供过程趋势预测和专家计划,实现工程建设的智能化管理&a…

面向切面:AOP

面向切面:AOP 大家好,今天本篇博客我们来了解Spring里边的另一个重要部分,叫做AOP,也就是我们说的面向切面编程。 1、场景模拟 首先第一部分,咱们做一个场景模拟。我们先写一个简单的例子,然后通过例子引…

【Java 进阶篇】JQuery DOM操作:Class属性的舞蹈魔法

在前端的世界中,JQuery如同一位舞者,通过灵活的舞步为我们展示了操纵HTML元素的艺术。而在这场舞蹈的精彩演出中,Class属性的操作是一项极富魅力的技艺。在本篇博客中,我们将深入研究JQuery DOM操作中的Class属性操作,…

设计模式之备忘录模式

写在前面 嗨,伙计!刷到这篇文章就是有缘人,在阅读这篇文章前我有一些建议: 本篇文章大概3000多字,预计阅读时间长需要4分钟。本篇文章的实战性、理论性较强,是一篇质量分数较高的技术干货文章&#xff0c…

sql注入学习笔记

sql注入原理 掌握sql注入漏洞的原理掌握sql注入漏洞的分类 万能用户名 777 or 11 #原句 select userid from cms_users where username ".$username." and password".md5 ( $password ) ."输入过后为 select userid from cms_users where username …

深入理解C++关联式容器:set、multiset、map和multimap详解

序列式容器 与 关联式容器 我们知道: C 中,我们将 vector、list、queue 这种底层为线性序列的数据结构叫做 序列式容器,其存储的就是元素本身。而 关联式容器 以键-值对的形式存储数据。每个键在容器中必须是唯一的,而值则与相应…

毕业设计项目:基于java+springboot的共享单车信息网站

运行环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Ma…

保姆级Decimal.js的使用(如何解决js精度问题)

精度问题控制台图样 如果银行的业务你这样做,不知道要损失多少钱,这样是不行的,计算的不准确是需要背锅的,我们给后端去做吧,其实我们前端也是可以做的,引入Decimal.js 01.引入Decimal.js decimal.js是使用…

北邮22级信通院数电:Verilog-FPGA(9)第九周实验(2)实现下降沿触发的JK触发器(带异步复位和置位功能)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 JK.v module JK (input clk,input J,input K,input…

TCP编程及基础知识

一、端口号 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区分TCP端口号与UDP端口号独立端口用两个字节来表示 2byte(65535个) 众所周知端口:1~1023(1~255之间为众所周知端口&#xff…

macOS使用conda初体会

最近在扫盲测序的一些知识 其中需要安装一些软件进行练习,如质控的fastqc,然后需要用conda来配置环境变量和安装软件。记录一下方便后续查阅学习 1.安装miniconda 由于我的电脑之前已经安装了brew,所以我就直接用brew安装了 brew install …