QT: :QWheelEvent

c++程序从QT5(MSVC2015)移植到QT6.2(MSVC2019) 非系统性文档,遇到一个记录一个 项目场景: c++程序从QT5(MSVC2015)移植到QT6.2(MSVC2019) 问题描述: 1. error: C1083: 无法打开包括文件: “QTextCodec”: No such file or directory 原因分析: QT6版本已经去除了QTextcodec,需要使用QT5模块来兼容。 解决方案: 首先在安装QT6时选择QT5兼容模块; 我安装的是QT6.2.2,目前已更新到6.3.0-beta,更新时选择自己已安装的版本的QT5兼容 阅读详情
QWheelEvent 类参考
QWheelEvent类包含用于描述鼠标滑轮事件的相关参数。
#include<QWheelEvent>
继承至:QInputEvent

公有函数:

QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, 
              Qt::Orientation orient = Qt::Vertical )
              
QWheelEvent ( const QPoint & pos, const QPoint & globalPos, int delta, Qt::MouseButtons buttons,
              Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )
              
Qt::MouseButtons buttons () const
int delta () const
const QPoint & globalPos () const
int globalX () const
int globalY () const
Qt::Orientation orientation () const
const QPoint & pos () const
int x () const
int y () const
1个从父类QInputEvent继承过来的公有函数:Qt::KeyboardModifiersmodifiers () const

6个从QEvent继承过来的公有函数:

 QEvent ( Type type )
              virtual ~QEvent ()
              void accept ()
              void ignore ()
              bool isAccepted () const
              void setAccepted ( bool accepted )
              bool spontaneous () const
              Type type () const
详细描述:

    QWheelEvent类用于描述鼠标转轮(middle_mouse_button)事件.当鼠标指针定位于一个窗口界面之上时,
    滑动鼠标转轮会产生一系列事件(QWheelEvent),这些事件会被传送给鼠标指针所在的父窗口,如果此窗口不处理此事件(Event)
    该鼠标事件默认情况下会传送给具有输入焦点的窗口。 计算滑轮滚动轴滑动的距离可以用函数delta()计算,函数pos()和globalpos()
    可以返回再一次鼠标事件中鼠标指针的当前位置。
    
    一个鼠标滑轮事件包含一些指定的接受标志用于指出该事件是否会被接收和处理,如果不处理该事件可以调用ignore(),
    这样可以保证该事件会被传送给鼠标指针所在的父窗口。
    
    函数QWidget::setEnabled()可以用于禁止/允许一个窗口接收鼠标和键盘事件。
    事件处理函数QWidget::wheelEvent()被用于接收鼠标滑轮事件。

    

成员函数描述:

QWheelEvent::QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons, 
                           Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )
创建一个wheelEvent对象,参数pos代表鼠标指针在窗口中的当前位置,通常用globalPos()初始化QCursor::pos(),但并不总是正确的。
如果需要显示指定一个全局位置,可以用其他的构造函数。


参数button用于描述在鼠标事件过程中鼠标按键的状态(state),delta()可以返回滑动的距离,参数modifiers用于描述在鼠标事件中
鼠标状态位改变时的参数值 (比如鼠标的左中右按键的切换),参数orient用于指示鼠标滑轮滚动的方向(比如向上或者向下)。


QWheelEvent::QWheelEvent ( const QPoint & pos, const QPoint & globalPos, int delta, Qt::MouseButtons buttons, 
                           Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )
创建一个wheelEvent对象,参数pos用于指出鼠标指针在当前窗口中的当前位置,要返回鼠标指针在全局坐标系统中的位置可以调用globalPos(),
函数delta()用于返回鼠标滑轮滑动的距离,参数modifiers用于描述在鼠标事件中鼠标状态位改变时的参数值 (比如鼠标的左中右按键的切换),
参数orient用于指示鼠标滑轮滚动的方向(比如向上或者向下)。

Qt::MouseButtons QWheelEvent::buttons () const
当事件发生时,返回鼠标状态。

int QWheelEvent::delta () const
当鼠标滑轮在滚动时用于返回滑动的距离,该值等于鼠标旋转角度的8倍。正数值表示滑轮相对于用户在向前滑动,
相反,负数值表示滑轮相对于用户是向后滑动的。

大多数鼠标工作在单步15度的情况下(意思是鼠标转轮滑动一圈是360度,细化成单步就是1度,那么鼠标转轮滑动一度对应于窗口界面单位尺度的8倍),在这种情况下,delta的返回值是120的倍数。计算公式:120 units/8=15度。

但是,有些鼠标有更好的解决方案,而且对顶单步值小于15度即delta()的返回值比120要小,为了支持这种可能性,在鼠标事件中既可以累积该返回值,
直到该返回值累加到120为止,然后滚动窗口;或者可以小幅度的滚动窗口作为对每一次鼠标滚动事件的响应,从而计算该返回值。例如:
 void MyWidget::wheelEvent(QWheelEvent *event)
 {
     int numDegrees = event->delta() / 8;
     int numSteps = numDegrees / 15;


     if (event->orientation() == Qt::Horizontal) {       
         scrollHorizontally(numSteps);       //水平滚动
     } else {
         scrollVertically(numSteps);       //垂直滚动
     }
     event->accept();      //接收该事件
 }

const QPoint & QWheelEvent::globalPos () const
返回鼠标指针的全局位置,这个特性对于异步窗口系统很重要譬如X11,然后当你滑动窗口作为鼠标响应事件时,
可以用globalPos()函数与QCursor::pos()函数进行区分当前鼠标指针所在的位置。

int QWheelEvent::globalX () const
返回鼠标指针全局坐标中X轴所对应的坐标值。

int QWheelEvent::globalY () const
返回鼠标指针全局坐标中Y轴所对应的坐标值。

Qt::Orientation QWheelEvent::orientation () const
返回鼠标转轮滚动的方向,当为整数值时表示向前,负数值时表示向后。方向参考系可选用户本身。

const QPoint & QWheelEvent::pos () const
返回鼠标指针相对于窗口的坐标值QPoint(x,y),如果滚动窗口可以用globalPos()替换本函数从而返回全局坐标值。

int QWheelEvent::x () const
返回鼠标指针相对于窗口的相对位置值的X坐标值。

int QWheelEvent::y () const
返回鼠标指针相对于窗口的相对位置值的Y坐标值。





                         

QT中滚轮事件QWheelEvent实例 QWheelEvent类包含用于描述鼠标滑轮事件的相关参数。头函数:#include,继承至:QInputEvent公有函数:1)QWheelEvent::QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons,Qt::KeyboardModifiers modifiers, Qt::Orientation ori 阅读详情

相关推荐

【Qt入门】详解QWheelEvent、QResizeEvent、QMoveEvent事件

在开发图形用户界面(GUI)应用程序时,事件处理是一个核心部分。Qt 提供了强大的事件处理机制,其中和QMoveEvent是用于处理鼠标滚轮、窗口大小改变和窗口移动等特定事件的类。掌握这些事件类的使用方法,对于创建具有高用户体验的交互式应用程序非常重要。本文将详细介绍和QMoveEvent的成员函数及其作用,帮助读者更好地理解和运用这些事件。通过本文的介绍,我们详细了解了和QMoveEvent类的作用及其常用成员函数的功能和用法。

m0_62599305的博客 1541

QT滚轮事件QWheelEvent简单介绍与实例

QWheelEvent类包含用于描述鼠标滑轮事件的相关参数。 头函数:#include 继承至:QInputEvent公有函数: 1)QWheelEvent::QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons,Qt::KeyboardModifiers modifiers, Qt::Orientation

qq_28386947的博客 9452

【QT开发】鼠标滚轮事件处理QWheelEvent类详解及实战应用

QWheelEvent是Qt提供的一个功能强大且灵活的鼠标滚轮事件处理类,通过本篇文章的学习,你应该对QWheelEvent有了全面的理解,能够在自己的项目中正确使用它。QWheelEvent在用户界面中帮助你更好地管理滚轮输入,实现交互式和响应式的应用程序,有助于创建用户友好和高效的界面。

科技改变人类,技术成就未来 2645

qt QWheelEvent详解

QWheelEvent是Qt框架中用于处理鼠标滚轮事件的一个类。当用户滚动鼠标滚轮时,Qt会生成一个QWheelEvent事件,并将其发送到相应的窗口或控件。开发者可以通过重载窗口或控件的方法来响应这个事件,并执行相应的操作,如滚动视图、缩放内容等。

ckg3824278的博客 1078

学习QT之事件处理

文章目录一、鼠标事件二、键盘事件三、事件过滤 一、鼠标事件 鼠标事件包括鼠标的移动,鼠标键按下、松开、单击、双击等。 在实际使用中,只需重定义QWidget的三个鼠标事件方法,即mouseMoveEvent、mousePressEvent、mouseReleaseEvent和mouseDoubleClickEvent void MouseEvent::mousePressEvent(QMouseEvent *e) { if(e->button() == Qt::LeftButton) { //

贝勒里恩的博客 1167

QT事件----QPaintEvent绘图事件,QwheelEvent鼠标滚轮事件等; 用事件自定义按键;QT事件过滤器。

使用自定义的按键mybutton,继承于QWidget,实现当鼠标进入时显示一张图片s1.png,当鼠标离开时显示另一张图片note.png,当点击鼠标按钮时会显示另外一张图片o1.png。首先定义一个C++类,名为mybutton。然后在mybutton.hQ_OBJECTpublic://检测鼠标离开事件//检测鼠标进入事件//重写绘图事件signals://将按键大小设置为图片大小update();//回调画图函数//鼠标点击事件update();//回调画图函数。

m0_51430584的博客 778

error C4996: ‘QWheelEvent::pos‘: Use position()

最近升级QT版本,从QT5.12.9升级到QT5.15.2,编译报错error C4996: 'QWheelEvent::pos': Use position() 看这个报错不难发现,新的版本把QWheelEvent::pos改为QWheelEvent::position 了,代码中修改pos为position, 编译通过,问题解决。 ...

liu3235751的专栏 1905

5.1 Tessent Atpg系列 第八章 Test Pattern Generation - Verify Test Pattern

为什么要做基于timing的仿真,意义在于可以比较ATPG工具和simulator工具的差异性。因为时序的差异导致不同的结果。首先你需要通过write_patern 这句cmd来写出pattern,默认是parallel 模式,除非你用-serial 指定写出serial, 因为serial 文件非常大,所以你可以使用-sample 开关写出部分pattern即可,工具会根据每一种pattern 类型都会至少保存一只。 另外,你也可以使用-start -end 开关来减少文件大小,但是这样的截取,是不可靠的

ciscomonkey的博客 7762

Qt实战:用QMouseEvent和QWheelEvent打造个性化鼠标交互(附完整代码)

本文详细介绍了Qt框架中QMouseEvent和QWheelEvent的使用方法,帮助开发者实现个性化鼠标交互功能。通过基础事件处理、高级功能实现到实战案例的完整代码演示,展示了如何利用Qt事件系统打造响应灵敏的用户界面,特别适合需要定制鼠标交互的Qt开发者参考。

prometheus9mon的博客 192

使用STM32制作简易数字时钟

连接LED数码管的电源和地线到STM32单片机的对应引脚,将数码管的A、B、C、D引脚连接到STM32单片机的I/O口引脚。通过编写和调试这个项目,可以熟悉STM32单片机的GPIO口和定时器的使用,以及数字显示的控制。步骤六:测试和调试 通过观察数码管的显示,可以验证时钟功能是否正常工作。步骤四:编写代码 在主程序中,我们将使用定时器中断来控制时钟的运行,并使用GPIO口控制LED数码管的显示。步骤五:编译和下载 编译代码并下载到STM32单片机中,通过调试器和串口监视器进行调试和查看输出结果。

qq_67153941的博客 1303

手把手教你学Simulink——基于电机驱动系统的场景实例:轮毂电机在电动汽车中的分布式驱动控制仿真

本文详细介绍了基于MATLAB/Simulink和Simscape Electrical的电动汽车轮毂电机分布式驱动控制系统建模方法。内容包括系统结构设计(轮毂电机、逆变器、控制器等模块)、完整的建模过程(从基础模块导入到车辆动力学建模)、控制器设计与转矩分配策略实现,以及仿真参数设置与结果分析。通过仿真验证了该分布式驱动系统在速度跟踪、转弯性能等方面的优异表现,为电动汽车驱动系统的研究与开发提供了有效的仿真验证平台。文中还提供了相关代码示例和资料推荐,是学习Simulink电机控制系统建模的实用指南。

MHD0815的博客 4914

Qt 鼠标事件和滚轮事件 QMouseEvent、QWheelEvent:从事件分发到自定义交互的完整配置骨架

Qt 画布拖拽不跟手?先开 setMouseTracking(true) 再重写 mouseMoveEvent,用 buttons() 判断按键、增量更新偏移。本文给出 QMouseEvent 与 QWheelEvent 完整配置骨架,含以鼠标位置为中心的滚轮缩放、eventFilter 拦截子控件事件,并附 Qt5/Qt6 API 差异与排错清单。调试事件链路可借助 TaoToken 梳理调用顺序,详见 https://taotoken.net/?utm_source=taotoken_aicg_blog

weixin_30995917的博客 8

Yolov8损失函数改进:MPDIoU新型边界框相似度度量,效果秒杀GIoU 、 DIoU 、CIoU 、 EIoU等 | ELSEVIER 2023

ELSEVIER 2023 MPDIoU新型边界框相似度度量助力yolov8,适用提升小目标、遮挡物性能提升

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 7775

Qt 鼠标事件和滚轮事件 QMouseEvent、QWheelEvent:把事件处理改到 TaoToken 的排查清单

Qt 鼠标事件与滚轮事件排查清单:从 QMouseEvent、QWheelEvent 分发链路入手,用 eventFilter 与 qDebug 打印事件类型和坐标,定位父级拦截、坐标偏移与滚轮步进异常。配合 TaoToken 统一 Key 与 API 通道下发交互参数,官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 可查接入文档与模型列表。

weixin_42613018的博客 12

月薪30k+的工业视觉,必备Java+YOLO技能(工业级落地全拆解)

30k+工业视觉岗的核心不是算法调参,而是用Java把YOLO落地到工业场景的能力——稳运行、能对接、可管理是高薪的核心壁垒;必备技能分五层:模型工业级适配、Java推理核心、SpringBoot后端、工业部署运维、场景适配,每层都要练到“能落地、能讲清、能避坑”;学习路径的核心是“实战驱动”:不要只学理论,从一个完整的工业项目(如锂电缺陷检测)入手,练完就能对标高薪岗。

2601_94871597的博客 525

Python 爬虫实战:华尔街见闻精选文章爬取(反反爬 + 投资情绪分析)

Python 爬虫实战:华尔街见闻精选文章爬取(反反爬 + 投资情绪分析)

yansideyucsdn的博客 970

排查自模拟QWheelEvent事件不能向上传递排查

排查自模拟QWheelEvent消息不能向上传递 1、事情起因 因为我们的项目需要做一次大升级。从Qt 5.5升级到Qt 5.15.2.0,这个大版本的升级真是把我折腾的够呛。 在我们的项目中,自己模拟了一个鼠标滚轮消息的。利用QApplication::postEvent()函数,向消息队列中发送一个QWheelEvent消息。这样就可以控件就可以自动滚动了。 但是项目升级到Qt 5.15.2.0之后发现不行了。 擦了擦额头的汗,这个bug怎么修啊?无从下手的感觉。 去请教别人?万一,别人觉得我很low怎

Mingyueruya的专栏 628

基于FPGA设计的信号分析仪(项目资料ID:28)

基于现场可编程门阵列(FPGA)设计的信号分析仪。该信号分析仪旨在实现对各类信号的精确分析,具备频率、幅度、相位等参数测量功能。通过采用 FPGA 作为核心处理单元,充分利用其并行处理能力和可重构特性,提高了系统的处理速度和灵活性。论文介绍了信号分析仪的总体设计方案,包括硬件电路设计和软件算法实现。

以培养嵌入式工程师为己任 1万+

DSView项目在Qt6环境下的编译问题分析与解决方案

DSView是一款开源的逻辑分析仪软件,近期有用户在Ubuntu 24.04系统上使用Qt6编译DSView-1.3.2版本时遇到了几个关键性的编译错误。本文将详细分析这些错误的技术背景,并提供可行的解决方案。 ## 主要编译错误分析 ### 1. nativeEvent方法重写问题 错误信息显示MainFrame类中的nativeEvent方法被标记为override,但实际上并未正确重写...

gitblog_07189的博客 402

YOLO与ORB-SLAM3的结合:实现动态环境下的目标检测与视觉SLAM

摘要: 本文介绍如何将YOLOv5目标检测与ORB-SLAM3视觉SLAM系统结合,实现动态环境下的机器人感知与定位。内容包括:源码下载(集成项目YOLO_ORB_SLAM3)、libtorch安装(PyTorch C++支持)、编译配置(解决路径依赖问题)、ROS环境下的部署(Noetic适配),以及使用TUM数据集的测试流程(RGB-D数据关联与运行)。重点解决编译时Torch路径错误、ROS与Anaconda冲突等问题,并展示系统运行效果。该整合方案为动态场景SLAM提供目标检测能力,未来可优化检测模

FJN110的博客 960

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

qt5项目到qt6过度常见bug(持续记录更新)

Qt::Orientation 无法返回0 返回的值应为Qt::Orientation::Horizontal。QWheelEvent::delat改为QWheelEvent的angleDelta().y。QWheelEvent::pos改为 QWheelEvent::position。qt6中QCPAxis::AxisType被重写了 0的话没有能够接收的值。QCPAxis::AxisType::atLeft带表第0个位置。改为使用 QPainter::Antialiasing代替;

latterofTurtle的博客 3563

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

QT_鼠标及键盘事件

基于 Qt Widgets,整理鼠标事件(QMouseEvent / QWheelEvent)与键盘事件(QKeyEvent)的常用知识,并附两个完整案例:鼠标事件测试程序、键盘方向键控制图片移动。

前端开发工程师 275

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

我的QT Creator学习笔记(十四)——事件系统之鼠标事件和滚轮事件

事件系统之鼠标事件和滚轮事件

sinat_41928334的博客 898

Qt Creator鼠标事件与滚轮事件

鼠标事件:使用QMouseEvent类获取鼠标事件信息,在窗口部件中按下、移动鼠标都会产生鼠标事件。可以重定义鼠标事件的处理函数使得其能够完成你想完成的自定义事件。滚轮事件:使用QWheelEvent类获取滚轮移动方向和距离,如下例子:namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: e...

smarterr的博客 2621

qt中判断滚轮方向

在wheelEvent事件中,调用QWheelEvent类的angleDelta方法,判断返回的QPoint的y值,正值则向前,负值则向后。

iamzko的博客 747
上一篇: QT::QBitArray
下一篇: QT::QMouseEvent
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值