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

QT鼠标、键盘事件

一、鼠标

鼠标点击 mousePressEvent

鼠标释放 mouseReleaseEvent

鼠标移动 mouseMoveEvent

鼠标双击 mouseDoubleClickEvent

鼠标滚轮 QWheelEvent

二、键盘

键盘按下 keyPressEvent

键盘松开keyReleaseEvent


一、鼠标

#include <QMouseEvent> 

鼠标点击 mousePressEvent

void Widget::mousePressEvent(QMouseEvent *event){  if(event->button() == Qt::RightButton){}if(event->button() == Qt::LeftButton){}
}

鼠标释放 mouseReleaseEvent

void Widget::mouseReleaseEvent(QMouseEvent *event){ if(event->button() == Qt::RightButton){}if(event->button() == Qt::LeftButton){}
}

鼠标移动 mouseMoveEvent

void Widget::mouseMoveEvent(QMouseEvent *event){this->move(QPoint());
}注:
event->globalPos();//光标的位置
QCursor::pos();//光标的位置
this->pos();//界面左上角位置

鼠标双击 mouseDoubleClickEvent

void Widget::mouseDoubleClickEvent(QMouseEvent *event)

鼠标滚轮 QWheelEvent

void Widget::wheelEvent(QWheelEvent* event)
{
//使用 angleDelta() 来获取滚动角度增量QPoint angleDelta = event->angleDelta();if (!angleDelta.isNull()) {int yDelta = angleDelta.y(); // 获取垂直方向上的增量if (yDelta > 0) {// 向上滚动qDebug() << "UP";}else if (yDelta < 0) {// 向下滚动qDebug() << "DOWN";}//或者使用 pixelDelta() 来获取滚动像素增量QPoint pixelDelta = event->pixelDelta();if (!pixelDelta.isNull()) {int yDelta = pixelDelta.y(); // 获取垂直方向上的增量if (yDelta > 0) {}else if (yDelta < 0) {}}
}

注:qt5是event->delta();

二、键盘

#include <QKeyEvent> 

键盘按下 keyPressEvent

void Widget::keyPressEvent(QKeyEvent *event){
//特殊按键 如按下CTRLif(event->modifiers() == Qt::CTRL){}//普通按键 如按下Aif(event->key() == Qt::Key_A){}else{  QWidget::keyPressEvent(event);//保持基类默认}
}

键盘松开 keyReleaseEvent

void Widget::keyReleaseEvent(QKeyEvent *event){switch (event->key()) {case Qt::Key_Up:if (!event->isAutoRepeat()) {} //使用isAutoRepeat是为了识别自动重复,即事件发生一次就执行一次功能break;case Qt::Key_Left:if (!event->isAutoRepeat()) {}break;default:break;}// 调用基类的方法来处理默认行为QWidget::keyReleaseEvent(event);
}

注:isAutoRepeat:

如 
if (!event->isAutoRepeat()) {jump();}

只会在按下一次键盘后执行一次jump函数,在游戏中就只会让角色跳跃一次。

相关文章:

QT鼠标、键盘事件

一、鼠标 鼠标点击 mousePressEvent 鼠标释放 mouseReleaseEvent 鼠标移动 mouseMoveEvent 鼠标双击 mouseDoubleClickEvent 鼠标滚轮 QWheelEvent 二、键盘 键盘按下 keyPressEvent 键盘松开keyReleaseEvent 一、鼠标 #include <QMouseEvent> 鼠标点击 mouse…...

Ceph分布式存储集群,不仅仅是一个简单的对象存储解决方案

Ceph 作为 OpenStack 的存储后端 块存储&#xff08;Cinder 后端&#xff09; Ceph 的 RBD&#xff08;RADOS Block Device&#xff09;模块作为 OpenStack Cinder 服务的后端&#xff0c;为虚拟机提供块级别的存储资源。RBD 支持快照、克隆和恢复等功能&#xff0c;能够满足虚…...

DSP+Simulink——点亮LED灯(TMSDSP28379D)超详细

实现功能&#xff1a;DSP28379D-LED灯闪烁 :matlab为2019a :环境建立见之前文章 Matlab2019a安装C2000 Processors超详细过程 matlab官网链接&#xff1a; Getting Started with Embedded Coder Support Package for Texas Instruments C2000 Processors Overview of Creat…...

Linux 环境下编译安装 OpenCV 4.8.x

在 Linux 环境下编译安装 OpenCV 4.8.x 需要安装一系列依赖库。以下是详细的步骤说明&#xff0c;并附上每个依赖库的作用解释。 1. 环境准备 操作系统 推荐使用 Ubuntu 20.04/22.04 或其他基于 Debian 的 Linux 发行版。 编译器 GCC 9 或更高版本&#xff08;默认已安装&a…...

phpenc加密程序源码

免费扩展加密程序&#xff0c;类似于sg11加密&#xff0c;支持单个PHP&#xff08;免费&#xff09;文件以及批量PHP文件&#xff08;ZIP压缩包格式&#xff09;源码加密的保护平台&#xff0c;加密后的源码文件保持原有代码结构&#xff0c;可以跨平台运行&#xff0c;可以运行…...

学英语学Elasticsearch:04 Elastic integrations 工具箱实现对第三方数据源的采集、存储、可视化,开箱即用

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#xff1a; 先看关键单词&#xff0c;再看英文&#xff0c;最后看中文总结&#xff0c;再回头看一遍英文原文&#xff0c;效果更佳&#xff01;&#xff01; 关键词 ingestion 摄取 /ɪnˈdʒɛstʃən/ observability 可观察性 …...

2024.10.12 校招 实习 内推 面经

&#x1f6f0;️ &#xff1a;neituijunsir 交* 流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 中车电动2025届校园招聘正式启动 校招 | 中车电动2025届校园招聘正式启动 2、校招 | 莱斯信息2025届校园招聘 校招 | 莱斯信息2025届校园招聘 3、招聘 | 中电熊猫2025…...

ios越狱脚本巨魔商店安装教程

使用爱思助手安装 安装爱思助手&#xff1a;在电脑上安装 iTunes 和爱思助手&#xff0c;并使用 Apple ID 登录2。 IPA 签名&#xff1a;打开爱思助手&#xff0c;选择工具箱中的 IPA 签名。点击添加 IPA 文件&#xff0c;选择下载的 TrollInstallerX.ipa 文件。选择使用 Apple…...

浅谈容灾技术方案详解

一、什么是容灾&#xff1f; 容灾指的是&#xff0c;在异地搭建一套或多套和主生产系统一样的IT系统&#xff0c;用于应对在系统因发生意外&#xff08;自然灾害、人为灾害、设备系统故障等&#xff09;造成业务影响的情况&#xff0c;达到尽量让生产业务损失最小的目的。 二…...

时序数据库InfluxDB—介绍与性能测试

目录 一、简述 二、主要特点 三、基本概念 1、主要概念 2、保留策略 3、连续查询 4、存储引擎—TSM Tree 5、存储目录 四、基本操作 1、Java-API操作 五、项目中的应用 六、单节点的硬件配置 七、性能测试 1、测试环境 2、测试程序 3、写入测试 4、查询测试 一…...

Python的循环

Python的循环 Python的循环有两种&#xff0c;分别是for…in循环和while循环。 for…in 循环 假设我们要循环输出一个列表里的元素&#xff1a; names [张三,李四,王五] for name in names:print(name)执行这段代码后&#xff0c;会依次打印names的每一个元素&#xff1a;…...

【机器学习】聚类评价指标之福尔克斯–马洛斯指数(Fowlkes–Mallows Index, FMI)

福尔克斯–马洛斯指数&#xff08;Fowlkes–Mallows Index, FMI&#xff09;是一种用于评估聚类结果与实际标签之间一致性的指标。FMI 值可以用于衡量聚类的准确性&#xff0c;特别是在有真值标签的监督评估场景中。 计算公式 FMI 的计算基于以下公式&#xff1a; 其中&#…...

分享一次面试经历

今天不只是分享面经&#xff0c;还分享一下主人公的整个面试经历&#xff0c;看看你是否会有相同的思路或者不同的见解&#xff0c;可以在评论区讨论一下&#xff1a; 问在项目里做了什么技术贡献。实施过程中&#xff0c;遇到哪些困难&#xff0c;怎么去思考解决的&#xff0…...

网络攻击行为可视化分析系统【数据分析 + 可视化】

一、系统背景 随着信息技术的快速发展&#xff0c;网络已成为现代社会不可或缺的一部分。然而&#xff0c;与此同时&#xff0c;网络攻击手段也日益多样化和复杂化&#xff0c;给企业和个人的信息安全带来了极大的威胁。传统的网络攻击分析方法往往依赖于人工分析和处理大量的…...

Qt 智能指针

Qt 智能指针 文章目录 Qt 智能指针QScopedPointer1. 自动删除对象2. 转移所有权3. 管理私有数据 QSharedPointer关键特性注意事项 QWeakPointer注意事项 QPointer QScopedPointer QScopedPointer 是 Qt 提供的一个智能指针&#xff0c;主要用于简化资源管理&#xff0c;防止内…...

CODESYS MODBUS TCP通信(禾川Q1 PLC作为MODBUS TCP从站)

禾川Q1 PLC MODBUS TCP 通信(PLC作为MODBUS TCP通信主站) 禾川Q1 PLC MODBUS TCP通信(CODESYS平台完整配置+代码)-CSDN博客文章浏览阅读28次。MATLAB和S7-1200PLC水箱液位高度PID控制联合仿真(MODBUSTCP通信)_将matlab仿真导入plc-CSDN博客文章浏览阅读722次。本文详细介绍了如…...

10.STM32F407ZGT6-内部温度传感器

参考&#xff1a; 1.正点原子 前言&#xff1a; 本笔记的主要目的和意义就是&#xff0c;再次练习ADC的使用。 32.1 内部温度传感器简介 STM32F407 有一个内部的温度传感器&#xff0c;可以用来测量 CPU 及周围的温度(TA)。对于STM32F407 系列来说&#xff0c;该温度传感器在…...

运维安全中心(堡垒机)

阿里云运维安全中心&#xff08;Alibaba Cloud Operation and Maintenance Security, OMS&#xff0c;通常也称为“堡垒机”&#xff09;是一款针对云上运维管理的安全解决方案。它专注于加强云环境中运维过程的安全性&#xff0c;确保对关键云资源和服务的访问可控、可审计&am…...

Linux OOM | Early OOM | 进程监视

注&#xff1a; 本文为 “Linux OOM” 相关文章合辑。 Linux OOM 终结者 译者&#xff1a;花名有孚 | 2015-07-21 08:47 现在是早晨 6 点钟。已经醒来的我正在总结到底是什么事情使得我的起床闹铃提前了这么多。我们的监控系统显示&#xff0c;Plumbr 服务出故障了。 现在我…...

【2024年华为OD机试】(A卷,100分)- 等和子数组最小和(Java JS PythonC/C++)

一、问题描述 题目描述 给定一个数组nums&#xff0c;将元素分为若干个组&#xff0c;使得每组和相等&#xff0c;求出满足条件的所有分组中&#xff0c;组内元素和的最小值。 输入描述 第一行输入 m 接着输入m个数&#xff0c;表示此数组nums 数据范围&#xff1a;1<m&…...

NFS服务

nfs文件系统 NFS:NetworkFileSystem网络文件系统&#xff0c;基于内核的文件系统。 服务安装 不固定端口启动&#xff0c;会注册到rpcbind&#xff08;固定端口&#xff09;服务上&#xff0c; 局域网适用[rootvm ~]# yum -y install nfs-utils # 依赖安装rpcbind [ro…...

RabbitMQ 交换机、队列和路由键的命名规范

在 RabbitMQ 中&#xff0c;使用 Topic Exchange 模式时&#xff0c;交换机、队列和路由键的命名规范是非常重要的&#xff0c;尤其是在多环境和多微服务的场景中。合理的命名规范可以提高消息系统的可维护性、可扩展性以及可读性。以下是一些关于 Topic Exchange 模式中交换机…...

腾讯云AI代码助手编程挑战赛-刑说

作品简介 鉴于当代普法力度不够大&#xff0c;这个刑说可以帮助大家更好的普及法律知识 技术架构 采用了全后端分离的架构&#xff0c;前端使用Vue.js&#xff0c;腾讯云的AI服务处理自然语言理解与生成。 实现过程 开发环境、开发流程 系统&#xff1a;win11 开发工具&…...

【测试】持续集成CI/CD

近期更新完毕&#xff0c;建议关注收藏点赞&#xff5e; 目录 概括gitJenkinspostman集成jenkins代码集成jenkins 概括 CI/CD stands for Continuous Integration and Continuous Deployment 定义 团队成果持续集成到公共平台。一天可以集成1次or多次 本地代码管理 git 远程代…...

阿里云直播Web

官方文档&#xff1a;Web播放器SDK常见问题_视频点播(VOD)-阿里云帮助中心 bug&#xff1a;播流的不稳定&#xff0c;直播总会进入 onM3u8Retry 监听&#xff0c;用户端就会黑屏&#xff0c;&#xff08;但其实并没有关播&#xff0c;正常关播进入的是pause这个监听&#xff0…...

DuckDB:PRAGMA语句动态配置数据库行为

PRAGMA语句是DuckDB从SQLite中采用的SQL扩展。PRAGMA命令可能会改变数据库引擎的内部状态&#xff0c;并可能影响引擎的后续执行或行为。本文介绍PRAGMA命令及其典型应用场景。 DuckDB PRAGMA介绍 在 DuckDB 中&#xff0c;PRAGMA 是一种编译指示&#xff08;compiler directi…...

GO通过SMTP协议发送邮件

什么是SMTP协议 SMTP&#xff08;Simple Mail Transfer Protocol&#xff0c;简单邮件传输协议&#xff09;是用于发送邮件的协议。当一个邮件服务器需要发送邮件给另一个邮件服务器时&#xff0c;它会使用SMTP协议与目标服务器建立连接&#xff0c;并传输邮件内容。SMTP协议的…...

轻量自高斯注意力机制LSGAttention模型详解及代码复现

模型背景 近年来,卷积神经网络(CNN)在高光谱图像分类领域取得了显著进展。然而,CNN面临 长距离关系建模 和 计算成本 增加的挑战。为解决这些问题,研究人员提出了基于 轻量自高斯注意(Light Self-Gaussian-Attention, LSGA) 机制的视觉转换器(Vision Transformer, VIT),旨…...

解读若依框架中的`@Excel` 和 `@Excels` 注解

文章目录 一、Excels 注解详解1.1 适用场景1.2 作用与好处 二、Excel 注解详解2.1 核心属性解析2.2 高级用法2.3 综合应用案例 三、总结 解读若依框架中的 Xss 注解博客&#xff1a;解读若依框架中的 Xss 注解 接下来我们将对若依框架中的 Excel 和 Excels 注解进行更加详细的…...

云商城--基础数据处理和分布式文件存储

第2章 基础数据处理和分布式文件存储 1.分布式文件存储系统Ceph学习 ​ 1).掌握Ceph架构 ​ 2).掌握Ceph组件 ​ 3).搭建Ceph集群(了解) 2.Ceph使用 ​ 1).基于Ceph实现文件上传 ​ 2).基于Ceph实现文件下载 3.SKU、SPU管理 ​ 1).掌握SKU和SPU关系 ​ 2).理解商品发…...

网站不用备案/自媒体账号申请

1、窗口全屏的两种方法&#xff1a;转自&#xff1a;http://blog.sina.com.cn/s/blog_4c451e0e010133ab.html设置全屏包括两个部分&#xff1a; 窗口全屏和Activity全屏。窗口全屏是指隐藏系统顶部用来显示时间、电量、信号等信息的标题栏&#xff1b;Activity全屏是指隐藏程序…...

做后台网站/杭州seo教程

观察我们的项目&#xff0c;实体类有UserInfo和MessageInfo两个类。 在UserInfo类中有两个属性&#xff1a;Username和Password&#xff0c;显然&#xff0c;这两个属性都不应为空。在MessageInfo类中有Contents&#xff0c;PostTime和PostUsername三个属性。其中Contents不能…...

企业网站开发制作/免费培训机构

有时候我们需要在程序中执行另一个程序的安装&#xff0c;这就需要我们去自定义 msi 安装包的执行过程。需求比如我要做一个安装管理程序&#xff0c;可以根据用户的选择安装不同的子产品。当用户选择了三个产品时&#xff0c;如果分别显示这三个产品的安装交互 UI 显然是不恰当…...

邢台123网/网站优化怎么操作

很多朋友都希望读取txt文本这个功能, 请教了工程师大大,才了解到,本版手机按键已经有了插件读取文本的功能.在按键的plugin目录下有一个file.lua就是文件操作插件,内有帮助文档,同学们可以参考比如读取附件里的qq.txt,代码如下 PutAttachment "/sdcard", "qq.tx…...

北京市建委网站官网/百度视频免费下载

1.微信聊天记录是一个listview&#xff0c;并且分为自己和其他人的两个布局 1.1左侧为其他人的布局&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"a…...

分析seo做的不好的网站/网络营销是干嘛的

一对一&#xff0c;和一对多的简单问题就部说了&#xff0c;直接来多对多这样的问题吧。首现关系映射为这样的&#xff1a;/// /// 对应数据库中dbo.Address表/// [DataContract][Table("Address", Schema "dbo")]public class AddressInfo{public Addres…...