QGraphicsSceneWheelEvent 详解

PySide6————QGraphicsView和QGraphicsScene实现鼠标滚轮放大图片,鼠标左键拖动查看图片局部 【代码】PySide6————QGraphicsView和QGraphicsScene实现鼠标滚轮放大图片,鼠标左键拖动查看图片局部。 阅读详情

QGraphicsSceneWheelEvent 是 Qt 图形视图框架中的一个类,它提供了与滚轮事件相关的信息和功能。当用户在 QGraphicsView 中滚动鼠标滚轮时,会生成一个 QWheelEvent,该事件会被转换成 QGraphicsSceneWheelEvent 并传递给 QGraphicsScene。这样,你就可以在 QGraphicsScene 的子类中重写 wheelEvent() 方法来处理这些滚轮事件。

以下是 QGraphicsSceneWheelEvent 的一些关键特性和方法的详解:

属性

  • delta(): 返回滚轮的滚动量,正值表示向前滚动,负值表示向后滚动。
  • orientation(): 返回滚轮的方向,可以是 Qt::Horizontal 或 Qt::Vertical。
  • buttons(): 返回与滚轮事件同时发生的鼠标按钮的状态。
  • modifiers(): 返回与滚轮事件同时发生的键盘修饰符的状态。

方法

  • pos(): 返回滚轮事件发生时鼠标光标在接收事件的图形项上的局部坐标。
  • scenePos(): 返回滚轮事件发生时鼠标光标在场景中的坐标。
  • screenPos(): 返回滚轮事件发生时鼠标光标在屏幕上的坐标。

使用示例

下面是一个如何在 QGraphicsScene 的子类中处理滚轮事件的示例:

class MyGraphicsScene : public QGraphicsScene
{
protected:
void wheelEvent(QGraphicsSceneWheelEvent *event) override
{
    if (event->orientation() == Qt::Vertical) {
        // 处理垂直滚轮滚动
        if (event->delta() > 0) {
            // 向前滚动
        } else {
            // 向后滚动
        }
    } else if (event->orientation() == Qt::Horizontal) {
        // 处理水平滚轮滚动
    }

    // 可以选择调用父类的实现来传递事件
    QGraphicsScene::wheelEvent(event);
}
};

在这个示例中,我们重写了 wheelEvent() 方法来处理滚轮事件。我们首先检查滚轮的方向,然后根据滚动的方向和量来执行相应的操作。最后,我们可以选择是否调用父类的 wheelEvent() 方法来传递事件给其他的处理者。

通过这种方式,你可以为 QGraphicsScene 中的滚轮事件添加自定义的行为,比如缩放视图、滚动文档等。

【QT开发教程】图形场景中滚轮事件管理QGraphicsSceneWheelEvent类详解及实战应用 本文详细介绍了QGraphicsSceneWheelEvent类的基本用法与高级应用技巧,通过实例代码展示了如何在QGraphicsScene中处理滚轮事件。通过合理使用QGraphicsSceneWheelEvent,可以显著提升应用的滚轮交互性能,实现各种丰富的用户操作。希望本文能为您在Qt开发中的滚轮事件管理提供实用帮助。 阅读详情

相关推荐

最新CobaltStrike4.8/CobaltStrike4.9、CS4.9/CS4.8、 Windows/Linux/Mac版下载

Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器。自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和sessions,可模拟APT做模拟对抗,进行内网渗透。 Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,

weixin_43167326的博客 7972

QT笔记(5)——Qt图形视图框架实例

Qt的图形视图框架很强大,同时也很复杂,这里做了一个简单的练习,对图片加载,并移动放缩,的一个图片查看器;需要继承图元类; 下面直接贴源码了: 新建一个widget应用,然后添加如下:

abcvincent的博客 5781

onnxruntime模型部署(一)-pythonAPI

简单模型的onnx模型的导出,以及onnxruntime推理引擎的模型部署

qq_45983373的博客 4059

QGraphics框架概念理解

QGraphics是QT提供的一套设计UI的框架 一 介绍: 1、 Graphics View:图形视图。 Scene:场景 /场景管理器( Scene 同时担负着管理场景中的对象,建立索引等工作)。 Item:(显示)对象,场景中可以被显示的元素。这里翻译成对象便于理解。 GraphicsItem:图形对象。 Event:事件,等同于 Windows 下的消息。 2、 GraphicsView 提供:支持大量自定义的二维图形对象交互( Interaction )的管理器; 一个支持缩放和旋转操作的视图 w

For_1ove的博客 2911

ANSYS Fluent DPM实战:从单点到锥形注入的粒子模拟全流程解析

本文深度解析了ANSYS Fluent中离散相模型(DPM)的粒子注入(Injection)设置全流程。从单点注入到锥形喷雾,详细阐述了不同注入类型的物理本质、参数逻辑与适用场景,并提供了粒径分布、湍流扩散等高级参数设置技巧与实战避坑指南,帮助工程师精准模拟喷雾、粉尘等粒子运动行为。

weixin_29276847的博客 654

【3】Ubuntu18.04下载与安装,以及中文输入法的安装

Ubuntu18.04下载与安装一、下载二、安装(在VMware 16 pro中安装Ubuntu18.04)三、Ubuntu中安装中文输入法1.检查 fcitx 框架2.安装输入法 一、下载 下载地址:Ubuntu Releases 往下拉,找到自己需要的安装版本(建议不要安装最新版,因为你在使用时候遇到的错误大多都是以前版本的,最新版本的,解决方案特别少) 我这里安装的是Ubuntu18.04 一般都是使用desktop版本的(desktop版和server版本的区别:请看这篇文章) 之后点击下载即

斯基的朦胧 1万+

QGraphicsSceneWheelEvent Class

Header:#include < QGraphicsSceneWheelEvent > qmake:QT += widgets Since:Qt 4.2 Inherits:QGraphicsSceneEvent This class was introduced in Qt 4.2.

weixin_43446462的博客 221

OpenAI Codex 国内安装配置全攻略:从零到实战的 AI 编程助手集成指南

AI 编程助手正成为提升开发效率的关键工具,其核心原理是基于大规模语言模型对代码语义进行深度理解与生成。这类技术通过将自然语言指令转化为可执行的代码、自动化重构与调试,为开发者提供了智能化的结对编程体验,其技术价值在于显著降低编码复杂度、加速项目迭代。在实际应用场景中,AI 编程助手可集成于日常开发流,辅助完成代码生成、项目分析与自动化任务。本文聚焦于 OpenAI 的 Codex,针对国内开发者在网络、认证和配置上的常见挑战,提供了涵盖多种安装方式、详细配置步骤及核心使用技巧的实战指南,并特别介绍了如何利

weixin_28715081的博客 415

Qt实现长图片的放大缩小以及动态显示

这篇文章是在这个基础上进行讨论的谈一谈分别利用opencv、Qt、matlab动态显示图片的实现 其实就是想找一种更加合适的方法进行图片的放大缩小以及动态显示。 这个是效果图   我把项目命名为Qtmline,因为之前做了和Qtimeline有关的东西 我们关心的是header files和source files里的文件 先说header files里的pixitem.h,放...

凌空的桨 2万+

从入门到精通:Cursor使用全攻略

Cursor是一款基于VSCode深度定制的AI编程工具,由Anysphere公司开发。它将AI技术与代码开发深度融合,能够理解自然语言指令并生成高质量代码,支持代码补全、跨文件上下文理解等功能。本文详细介绍了Cursor的安装设置、界面导航、基本操作和Composer模式等核心功能,并提供了高效提示词写作技巧和实际应用案例(如浏览器插件开发、复杂表单组件构建等)。文章还总结了使用注意事项和常见问题解决方案,展望了AI编程工具的发展前景。Cursor通过智能代码生成和项目理解能力,显著提升了开发效率,适合各

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 6457

读懂 403 Forbidden, the request has been blocked by UCON.:它不是浏览器渲染问题,而是后端安全闸门在拦截

摘要 403 Forbidden 错误表明服务器理解请求但拒绝执行,通常与权限或访问控制有关。当错误信息显示 "blocked by UCON" 时,说明请求被 SAP 体系中的统一连接管控框架拦截。UCON 采用白名单机制限制外部调用,通过记录、评估、强制三阶段流程实施管控。常见触发场景包括 HTTP 服务与通信场景配置不一致、白名单未更新等。排查时应通过 DevTools 确认服务器响应,使用 curl 排除浏览器干扰,并比较不同环境的行为差异。解决方案通常涉及调整配置传输顺序或更新

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 241

QT 的 Graphics View 系统

这个框架是一个相对成熟的渲染引擎的上层框架,通常也可以会叫做 Scene - View。 在QT中,GraphicsView是一个与QWdiget系列一点点不一样的系统。这个系统主要由下面几个框架类构成:QGraphicsView, QGraphicsScene, QGraphicsItem QGrahpicsView是从原生的QWidget继承过来,QGraphics-View系统中,他...

weixin_30532759的博客 111

CDR插件开发之CPG插件004 - 认识VGCore并编译生成你的第一个CPG文件

上篇文章中,讲到了使用VS2019编译CDR类型库 VGCoreAuto.tlb,编译后得到了vgcoreauto.tlh和vgcoreauto.tli两个文件。本文将对这两个文件说明,并演示通过标准的libid形式来导入CDR类型库,在这个过程中,穿插一些VS2019的使用技巧(删除目录、复制工程、打开项目或解决方案、修改解决方案名称、修改项目名称等),使读者循序渐进,逐步提高对VS2019工具的熟练程度,最后通过修改项目属性配置,生成第一个CPG文件。

Zebe 2984

QGraphicsView笔记

1.连续拖拽 2.多种图形可交互绘制

LebronBear的博客 3529

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Qt图形视图框架:QGraphicsScene详解

一、描述 1、场景提供了一个用于管理大量2D图形项的平面。该类充当图形项的容器。 它与视图一起用于可视化2D曲面上的图形图形项。 2、场景没有自己的视觉外观,只负责管理图形项。 3、场景的最大优势之一就是其快速有效地定位图形项的能力。即使场景中有数百万个图形项。 4、场景的另一个职责是传播来自视图的事件。要将事件发送到场景,可以构造一个继承QEvent的事件,然后使用QApplication::sendEvent()将其发送。event()负责将事件调度到各个图形项。 二、类型成员 1、QGra

友善啊,朋友的博客 3万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

QGraphicsView 鼠标滚轮在鼠标位置下放大和缩小

1.不按住鼠标左键 在图像缩小很小时 视图会很大 导致场景不够用 这时候会自动移动视图以保证视图不超出场景的范围 没有完全在鼠标位置下放大和缩小。2.按住鼠标左键 完全在鼠标位置下放大和缩小。

十四 1217

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Qt Graphics View

Graphics View框架,场景视图,代码示例

zw_ggr_2017的博客 6108

【QT】GraphicsView、QGraphicsScene、QGraphicsEllipseItem的使用

QGraphicsView一般由三个部分组成: 1、GraphicsView:看法;看;视野;(个人的)意见;见解;态度;(理解或思维的)方法;方式;视域;视线 2、QGraphicsScene:场景;场面;情景;镜头;(尤指不愉快事件发生的)地点,现场;事件;片段 3、QGraphicsItem :项目;一件商品(或物品);一则,一条(新闻) 从上面的英文翻译可以理解GraphicsView是一个放置我们制作的控件的层,scene是负责管理和操作我们的控件层,而item就是我们的控件实物层;...

凉开水白菜的博客 6616

4.3 Qt Graphics 场景中的交互逻辑

本文是《用 Qt 实现电子白板》的其中一节,建议全章阅读。 在电子白板中,针对控件的选择、位置编辑操作是最基本的交互逻辑。所谓位置编辑操作,是对控件进行平移、缩放、旋转,所依赖的设备主要有鼠标、触摸,以及部分键盘按键。 QGraphicsItem 提供了一些的选择、编辑的功能,比如 ItemIsSelectable、ItemIsMovable,但是不能完全满足我们的需求,所以需要我们自己实现所有功能。 控件选择 给定一个点,这个点命中哪...

luansxx的专栏 1162

在QGraphicsView中实现不受原WheelEvent影响的缩放效果

当我们实现了对QGraphicsView进行缩放操作的WheelEvent后,在实际使用中却会出现这样的状况:当我们将图像放大至出现滑动条的程度后,向下滚动鼠标就不会再执行缩小操作。这是因为QGraphicsView本身的WhellEvent:通过滚轮的上下移动移动图像具有更高的优先级,在当前图像可以进行上下移动操作(即不在顶部向上移动和不在底部向下移动)时就会单执行移动操作而不执行缩放操作,直到当前图像移动到顶部或底部。 本人尝试了很多方法解决这个问题,如尝试禁用QGraphicsView的Scrollb

qq_51606180的博客 1369

QGraphicsView 的wheelEvent(QWheelEvent *event)接口

QGraphicsView 的wheelEvent(QWheelEvent *event)接口

xie__jin__cheng的博客 604

PyQt5 QGraphicsView 滚轮实现图片放大缩小

本文讲的是如何在PyQt5的组件QGraphicsView中重写wheelEvent实现图片的放大缩小。

qq_60947873的博客 3815

QGraphicsView视图放大缩小 场景内图元同步缩放 鼠标滚轮事件实现

直接上代码: .h class CustomView : public QGraphicsView { Q_OBJECT public: CustomView (QGraphicsView *parent = 0); ~CustomView (); void ZoomIn(qreal detla); void ZoomOut(qreal detla); void Zoom(float sfactor); protected: virtual ...

DarkSying的博客 943
上一篇: QGraphicsItemGroup 使用教程
下一篇: QGraphicsRotation 详解
低配天才
博客等级 码龄10年 277粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值