当前位置: 首页 > news >正文

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例)

Qt 入门实战教程(目录)

前驱文章:

Qt Creator 创建 Qt 默认窗口程序(推荐)

什么是事件

事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。

事件(event)驱动的GUI窗口程序。

例如点击鼠标,按下按键。 在Qt中使用一个对象来表示一个事件,它继承自QEvent类。

常见事件


如鼠标事件(例如点击一下鼠标左键)、键盘事件(例如按下键盘的某个键)、定时事件、上下文菜单事件、关闭事件、拖放事件、绘制事件。

常见事件官方介绍

既然事件发生了,那么我们就需要对一个事件进行处理,就像我们点击了一下鼠标左键,程序就给了我们反馈一样,那么我们通过什么来对事件进行处理呢?

事件的处理

在QWidget类中提供了很多等待我们在子类中重写的虚函数,通常,我们通过重写这些函数来处理一些特定部件的典型事件。

当然,我们也可以通过在对象上安装事件过滤器。使用事件过滤器可以在一个界面类中同时处理不同子部件的不同事件。

鼠标按下事件的处理(示例)

创建项目

首先,创建一个名称为QtMousePressEvent的Qt默认的窗口程序。

参考 : Qt Creator 创建 Qt 默认窗口程序

添加鼠标事件响应函数

下面我们来尝试通过响应Qt的鼠标事件来显示鼠标的坐标。

打开Qt Creator >>编辑 >> 项目 >> Headers>> mainwindow.h

右键 class MainWindow >> Refactor >> Insert Virtual Function of Base Classes

如下图所示:

选择 QWidget >> mousePressEvent

Insertion options:

>> Insert definitions in implementation file >> OK

如下图所示:

显示鼠标位置

在窗口上添加控件用来显示鼠标的当前位置。

打开 Forms >> mainwindow.ui (双击打开)

在Ui文件中放置一个label起名为labelmove用来显示坐标的移动

修改 Label 控件的名字为 label_mouse_position

​显示鼠标按下的位置

打开 Sources >> mainwindow.cpp

添加头文件包含

>> #include <QMouseEvent>

>> MainWindow::mousePressEvent

在该函数内添加下面的代码:

void MainWindow::mousePressEvent(QMouseEvent *event)
{ui->label_mouse_position->move(event->pos());//鼠标点击哪里,label就在哪里显示auto pos = event->pos();//获得鼠标点击的位置QString text = QString("mouse postion (%1, %2)").arg(pos.x()).arg(pos.y());//生成文本内容ui->label_mouse_position->setText(text);//设置label的内容,用于显示ui->label_mouse_position->adjustSize();//根据内容调整label的大小,以显示全部内容
}

运行效果演示

代码下载

百度云

链接:https://pan.baidu.com/s/1XgN49hIvVhOLKuB3iLNaJQ

提取码:1234

Gitee 码云

https://gitee.com/carea/learn-qt-with-code/tree/master/QtMousePressEvent

更新记录

2023-08-13 QString格式化使用更加安全规范的方式

相关文章:

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例)

Qt 入门实战教程&#xff08;目录&#xff09; 前驱文章&#xff1a; Qt Creator 创建 Qt 默认窗口程序&#xff08;推荐&#xff09; 什么是事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。 事件&#xff08;event&#xff09;驱动…...

OpenCV:实现图像的负片

负片 负片是摄影中会经常接触到的一个词语&#xff0c;在最早的胶卷照片冲印中是指经曝光和显影加工后得到的影像。负片操作在很多图像处理软件中也叫反色&#xff0c;其明暗与原图像相反&#xff0c;其色彩则为原图像的补色。例如&#xff0c;颜色值A与颜色值B互为补色&#…...

HZOJ#237. 递归实现排列型枚举

题目描述 ​ 从 1−n这 n个整数排成一排并打乱次序&#xff0c;按字典序输出所有可能的选择方案。 输入 ​ 输入一个整数 n。&#xff08;1≤n≤8&#xff09; 输出 ​ 每行一组方案&#xff0c;每组方案中两个数之间用空格分隔。 ​ 注意每行最后一个数后没有空格。 样例…...

C++ PIMPL 编程技巧

C PIMPL 编程技巧 文章目录 C PIMPL 编程技巧什么是pimpl&#xff1f;pimpl优点举例实现 什么是pimpl&#xff1f; Pimpl (Pointer to Implementation) 是一种常见的 C 设计模式&#xff0c;用于隐藏类的实现细节&#xff0c;从而减少编译依赖和提高编译速度。它的基本思想是将…...

一个通用的EXCEL生成下载方法

Excel是一个Java开发中必须会用到的东西&#xff0c;之前博主也发过一篇关于使用Excel的文章&#xff0c;但是最近工作中&#xff0c;发现了一个更好的使用方法&#xff0c;所以&#xff0c;就对之前的博客进行总结&#xff0c;然后就有了这篇新的&#xff0c;万能通用的方法说…...

介绍 TensorFlow 的基本概念和使用场景。

TensorFlow&#xff08;简称TF&#xff09;是由Google开发的开源机器学习框架&#xff0c;它具有强大的数值计算和深度学习功能&#xff0c;广泛用于构建、训练和部署机器学习模型。以下是TensorFlow的基本概念和使用场景&#xff1a; 基本概念&#xff1a; 张量&#xff08;T…...

【力扣】304. 二维区域和检索 - 矩阵不可变 <二维前缀和>

目录 【力扣】304. 二维区域和检索 - 矩阵不可变二维前缀和理论初始化计算面积 题解 【力扣】304. 二维区域和检索 - 矩阵不可变 给定一个二维矩阵 matrix&#xff0c;以下类型的多个请求&#xff1a; 计算其子矩形范围内元素的总和&#xff0c;该子矩阵的 左上角 为 (row1, …...

线上问诊:数仓开发(三)

系列文章目录 线上问诊&#xff1a;业务数据采集 线上问诊&#xff1a;数仓数据同步 线上问诊&#xff1a;数仓开发(一) 线上问诊&#xff1a;数仓开发(二) 线上问诊&#xff1a;数仓开发(三) 文章目录 系列文章目录前言一、ADS1.交易主题1.交易综合统计2.各医院交易统计3.各性…...

微信小程序 通过响应式数据控制元素class属性

我想大家照这个和我最初的目的一样 希望有和vue中v-bind:class一样方便的指令 但答案不太尽人意 这里 我们只能采用 三元运算符的形式 参考代码如下 <view class"item {{ userId item.userId ? isThisUser : }}"> </view>这里 我们判断 如果当前ite…...

linux并发服务器 —— linux网络编程(七)

网络结构模式 C/S结构 - 客户机/服务器&#xff1b;采用两层结构&#xff0c;服务器负责数据的管理&#xff0c;客户机负责完成与用户的交互&#xff1b;C/S结构中&#xff0c;服务器 - 后台服务&#xff0c;客户机 - 前台功能&#xff1b; 优点 1. 充分发挥客户端PC处理能力…...

Java后端开发面试题——企业场景篇

单点登录这块怎么实现的 单点登录的英文名叫做&#xff1a;Single Sign On&#xff08;简称SSO&#xff09;,只需要登录一次&#xff0c;就可以访问所有信任的应用系统 JWT解决单点登录 用户访问其他系统&#xff0c;会在网关判断token是否有效 如果token无效则会返回401&am…...

TiDB x 安能物流丨打造一栈式物流数据平台

作者&#xff1a;李家林 安能物流数据库团队负责人 本文以安能物流作为案例&#xff0c;探讨了在数字化转型中&#xff0c;企业如何利用 TiDB 分布式数据库来应对复杂的业务需求和挑战。 安能物流作为中国领先的综合型物流集团&#xff0c;需要应对大规模的业务流程&#xff…...

负载均衡算法实现

负载均衡算法实现 负载均衡介绍 负责均衡主要有以下五种方法实现: 1、轮询法 将请求按顺序轮流地分配到后端服务器上&#xff0c;它均衡地对待后端的每一台服务器&#xff0c;而不关心服务器实际的连接数和当前的系统负载&#xff1b; 2、随机法 通过系统的随机算法&#…...

Flutter 完美的验证码输入框 转载

刚开始看到这个功能的时候一定觉得so easy&#xff0c;开始的时候我也是这么觉得的&#xff0c;这还不简单&#xff0c;然而真正写的时候才发现并没有想象的那么简单。 先上图&#xff0c;不上图你们都不想看&#xff0c;我难啊&#xff0c;到Github&#xff1a; https://gith…...

SpringBoot整合Jpa实现增删改查功能(提供Gitee源码)

前言&#xff1a;在日常开发中&#xff0c;总是撰写一些简单的SQL会非常耗时间&#xff0c;Jpa可以完美的帮我们提高开发的效率&#xff0c;对于常规的SQL不需要我们自己撰写&#xff0c;相对于MyBatis有着更简单易用的功能&#xff0c;但是MyBatis自由度相对于Jpa会更高一些&a…...

微服务[Nacos]

CAP 1&#xff09;一致性(Consistency) (所有节点在同一时间具有相同的数据) 2&#xff09;可用性(Availability)(保证每个请求不管成功或者失败都有响应) 3&#xff09;分区容错(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作) 一、虚拟机镜像准备 …...

8K视频来了,8K 视频编辑的最低系统要求

当今 RED、Canon、Ikegami、Sony 等公司的 8K 摄像机以及 8K 电视&#xff0c;许多视频内容制作人和电影制作人正在认真考虑 8K 拍摄、编辑和后期处理&#xff0c;需要什么样的系统来处理如此海量的数据&#xff1f; 中央处理器&#xff08;CPU&#xff09; 首先&#xff0c;…...

AsyncContext优雅实现HTTP长轮询接口

一、背景 接到一个需求&#xff0c;实现方案时需要提供一个HTTP接口&#xff0c;接口需要hold住5-8秒&#xff0c;轮询查询数据库&#xff0c;一旦数据库中值有变化&#xff0c;取出变化的值进行处理&#xff0c;处理完成后返回响应。这不就是长轮询吗&#xff0c;如何优雅的实…...

如何制作一个百货小程序

在这个数字化时代&#xff0c;小程序已成为各行各业的必备工具。其中&#xff0c;百货小程序因其便捷性和多功能性&#xff0c;越来越受到人们的青睐。那么&#xff0c;如何制作一个百货小程序呢&#xff1f;下面&#xff0c;我们就详细介绍一下无需编写代码的步骤。 一、进入后…...

【人工智能】—局部搜索算法、爬山法、模拟退火、局部剪枝、遗传算法

文章目录 局部搜索算法内存限制局部搜索算法示例&#xff1a;n-皇后爬山算法随机重启爬山模拟退火算法局部剪枝搜索遗传算法小结 局部搜索算法 在某些规模太大的问题状态空间内&#xff0c;A*往往不够用 问题空间太大了无法访问 f 小于最优的所有状态通常&#xff0c;甚至无法储…...

5个实用技巧让华硕笔记本性能提升30%:GHelper全功能解析

5个实用技巧让华硕笔记本性能提升30%&#xff1a;GHelper全功能解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, …...

喜马拉雅音频下载器:解决VIP内容离线保存的技术方案

喜马拉雅音频下载器&#xff1a;解决VIP内容离线保存的技术方案 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 你是否曾因网络波动…...

从BERT到GPT-3:拆解Transformer架构如何成为现代AI的‘基建狂魔’

Transformer架构&#xff1a;从语言理解到通用智能的进化之路 2017年&#xff0c;一篇名为《Attention Is All You Need》的论文悄然问世&#xff0c;谁也没想到这个名为Transformer的架构会在短短几年内重塑整个人工智能领域。它不仅彻底改变了自然语言处理的技术路线&#xf…...

TTS-Vue终极指南:如何快速构建高性能本地语音合成应用

TTS-Vue终极指南&#xff1a;如何快速构建高性能本地语音合成应用 【免费下载链接】tts-vue &#x1f3a4; 微软语音合成工具&#xff0c;使用 Electron Vue ElementPlus Vite 构建。 项目地址: https://gitcode.com/gh_mirrors/tt/tts-vue 在数据安全和网络稳定性成…...

手柄适配终极方案:DS4Windows实现跨平台控制器无缝体验

手柄适配终极方案&#xff1a;DS4Windows实现跨平台控制器无缝体验 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 当你兴冲冲地将PlayStation手柄连接到PC&#xff0c;却发现游戏完全没有…...

组播技术讲解

组播基础知识: 组播属于D类地址范围:224.0.0.0~240.255.255.255 图1:站在客户端的角度来看,存在两个模型ASM(任意源组播地址)、SSM(指定源组播地址);如果客户端程序只能选择加入的组地址,而无法选择组播源的地址,则部署ASM模型;如果客户端既可以选择加入的组地址,…...

16G内存就够了!GPT-OSS-20B量化版实测,响应速度快人一步

16G内存就够了&#xff01;GPT-OSS-20B量化版实测&#xff0c;响应速度快人一步 1. 开箱即用的高性能AI体验 在AI大模型遍地开花的今天&#xff0c;找到一个既强大又能在普通设备上流畅运行的模型实属不易。GPT-OSS-20B的出现打破了这一局面——这个由OpenAI开源的210亿参数模…...

造相-Z-Image-Turbo 在运维监控中的创意应用:生成系统状态拟人化报告图

造相-Z-Image-Turbo 在运维监控中的创意应用&#xff1a;生成系统状态拟人化报告图 每次打开监控大屏&#xff0c;面对满屏跳动的数字和密密麻麻的曲线图&#xff0c;你是不是也感到一阵视觉疲劳&#xff1f;CPU 80%、内存占用率65%、网络丢包0.1%……这些冰冷的指标虽然精确&…...

SQL分组Group By

一、先搞懂&#xff1a;分组查询是干嘛的&#xff1f;分组查询 GROUP BY 就是把表中数据按照某个字段「分类」&#xff0c;然后对每一类做统计。比如你 emp 表有 gender&#xff08;性别&#xff09;字段&#xff0c;用分组就能&#xff1a;统计「男员工有多少人、女员工有多少…...

MCP4151数字电位器Arduino驱动与三线SPI时序详解

1. MCP4151 数字电位器 Arduino 库深度技术解析1.1 器件本质与工程定位MCP4151 是 Microchip 推出的单通道、10kΩ 标称阻值、257 抽头&#xff08;0–256&#xff09;非易失性数字电位器。其核心价值不在于替代模拟电位器进行手动调节&#xff0c;而在于为嵌入式系统提供可编程…...