QGraphicsScene【详细描述】

QT之QGraphicsScene详细介绍 是 Qt GUI 库中的一个核心类,它是 QGraphicsView 的幕后数据模型,用于存储和管理二维图形元素。它可以容纳多种类型的图形项,包括但不限于基本形状(如矩形、圆形等)、图片、文本以及自定义的 QGraphicsItem 子类。关键特性:图形项管理:QGraphicsScene 负责管理其上的所有图形项,这些项可以通过调用 addXXX 方法(如 addRect、addEllipse 等)添加。事件处理:场景能捕获并处理来自鼠标和键盘的事件,然后将这些事件分发给相应的图形项,实现交互性。 阅读详情

QGraphicsScene提供绘图场景,场景是不可见的,它作为抽像的管理图形项 QGraphicsItems的容器,用户可以向场景添加图形项,获取场景中的图形项等。它与图形视图QGraphicsView一起用于可视化2D图形项目,如线、矩形、文本,甚至是自定义图形元素。


场景

QGraphicsScene是图形视图框架的一部分。

  • 它提供管理大量图形项的快速接口。
  • 它将事件传播给每个图形项。
  • 它管理每个图形项的状态,如:选择、焦点状态等。
  • 它管理未经变换的渲染功能,主要用于打印。

QGraphicsScene还提供了一些功能,让用户确定图形项的位置,并确定图形项在场景的可见性。使用QGraphicsView,可以可视化整个场景,也可以放大并仅查看场景的一部分。

QGraphicsScene scene;
scene.addText("Hello, world!");

QGraphicsView view(&scene);
view.show();

视图 

如上代码,QGraphicsScene并不可见,它只是管理图形项,所以,用户需要创建一个QGraphicsView 控件来显示场景内容。可以为一个场景设置多个视图,用于对同一个数据集提供不同的视口。

如上图,视图1比场景更大,它显示场景的全部内容。缺省情况下,当视图大于场景,场景在视图的中间部分显示,可以设置视图的Alignment属性控制场景在视图中的显示位置。视图2小于场景,它只能显示场景的一部分,并提供滚动条在场景内移动。


图形项

 图形项是基本的图形元件,其基类是QGraphicsItem,QT提供了常见图形项的绘制函数。图形项支持以鼠标、键盘、拖放以及组合操作。组合可以是父子项关系,也可以通过QGraphiceItemGroup类进行。用户可以通过编写槽函数代码,实现各种编辑功能,图形项支持父子关系,还支持碰撞检测。

小结:

视图、场景和图形项的关系如上图,场景是图形项的容器,可以在场景上绘制很多图形项,每个图形项都是一个对象,有相关事件和动作。

视图是显示场景一部分区域的视口,场景可以有多个视图。


坐标系统

QGraphicsView有三个坐标系:图形项坐标、场景坐标、视图坐标。

  • 场景坐标等价于QPainter
QT中GraphicsView编程 QGraphicsItem是图元的基类。自定义图元,首先应该继承QGraphicsItem,然后重写他的两个纯虚公共函数boundingRect()和paint(),boundingRect()函数返回绘制图元大概的区域,paint()函数用来绘制图元内容。 阅读详情

相关推荐

QT 笔记 QGraphicsScene介绍

QT QGraphicsScene类介绍 分别介绍了以下内容: 1. 类说明 2. 公共属性 3. 公共函数 4. 设置相关的函数 5. 槽函数 6. 信号量 7. Event事件

别看了,就这些信息 2792

QGraphicsScene添加Widget

QGraphicsScene添加Widget简要说明示例介绍开发环境示例代码效果演示 简要说明 使用QGraphicsScene的addWidget(QWidget *widget, Qt::WindowFlags wFlangs)可以在场景中添加任意一个继承自QWidget的对象,可以是QPushButton,也可以是自定义的Widget。 在使用时是为要添加的Widget创建一个新的QGraphicsProxyWidget,并将其加入到场景中,返回一个指向这个QGraphicsProxyWidget的指

有何不为 4873

QGraphicsScene Class

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

weixin_43446462的博客 1184

QGraphicsView、QGraphicsScene和QGraphicsItem三者关系

按我自己的理解做个比如吧,不知道准不准确,但是应该能很好理解。 将QGraphicsView比作成一台手机,那么QGraphicsScene相当于手机里的app,比如是音乐播放器的话,那么QGraphicsItem就是里面的歌曲,在复杂点的话,就可以是播放器里的一切,不单单是歌曲,如播放、暂停按钮,歌词,歌手海报啥的。 多个views可以监视同一个场景,而场景包含多个具有多种几何外形的items。所以这句话大概意思就是多台手机里面都可以有同一个播放器,然后...

weixin_60828461的博客 2979

QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用

这里先创建一个矩形设置到sence中,然后再把图片设置到sence,运行后只看到图片看不到画的矩形原因在于sence中的items会根据additem的顺序展示出来,运行程序后先展示矩形,然后展示图片,但图片会覆盖矩形,所以只能看到图片,并不是矩形没有了,如果先additem图片在additem矩形,这样先展示图片,然后会在图片上画出矩形,这样可以正确显示。也是一个独立的坐标系,图像左上角默认为(0, 0)点,把图像放入scene,图像左上角坐标默认在scene的原点,设置图像左上角坐标。

qq_35662333的博客 3238

QT应用编程: 解决QGraphicsScene重写鼠标事件无法直接得到鼠标坐标问题

一、环境介绍 操作系统介绍:win10 64位 QT版本:5.12.6 二、现象 重载QGraphicsScene相关的鼠标事件,想得到当前鼠标的坐标点,如果直接从mouseEvent取坐标,返回的坐标点全是0。 class my_graphicsScene : public QGraphicsScene { protected: void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent); void mouseRele.

2268

6、QtCharts 悬浮曲线效果

【代码】6、QtCharts 悬浮曲线效果。

weixin_45672157的博客 378

2025反爬终极方案:Python破解Cloudflare v2行为指纹,设备伪装+轨迹模拟拦截率压至1%

Cloudflare v2的反爬逻辑越来越接近“人类行为识别”,单纯的技术破解已失效,核心竞争力变成“模拟真实用户的能力”。本文的终极方案本质是“全方位复刻人类行为”——从设备指纹到操作轨迹,从网络特征到交互模式,让爬虫成为“无法被区分的真实用户”。这套方案的优势是“通用性强”,不仅适用于Cloudflare v2,也能破解大多数高反爬网站(如小红书、知乎、跨境电商)的行为检测;且代码可直接复用,新手只需替换目标URL和数据提取逻辑,就能快速落地。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2354

EastWave应用案例:机箱屏蔽效能仿真

如何使用EastWave对机箱的电磁屏蔽效能进行仿真

2201_76034687的博客 1395

峰岹FU6832L双核电机控制芯片实战:从FOC算法到BLDC/PMSM驱动开发

在嵌入式系统和电机控制领域,磁场定向控制(FOC)是实现无刷直流电机(BLDC)和永磁同步电机(PMSM)高效、平稳运行的核心算法。其原理是通过坐标变换将三相交流量分解为直流量,实现类似直流电机的转矩与磁场解耦控制,从而提升效率、降低噪音与振动。这项技术的工程价值在于能以更低的处理器开销实现高性能驱动,广泛应用于消费电子、工业自动化与智能家电。本文以峰岹FU6832L芯片为例,深入解析其独特的双核架构——将实时性要求极高的FOC运算交由专用硬件引擎处理,解放主控CPU处理应用逻辑,并结合PID参数整定、电流

weixin_29570795的博客 512

深入理解DQN中的Q值:核心概念和应用

在强化学习中,Q值(或称为动作价值函数)是核心概念之一。Q值函数 ( Q(s, a) ) 表示在给定状态 ( s ) 下,采取动作 ( a ) 并遵循某策略后,智能体从当前状态到未来状态所能获得的预期总回报。简言之,Q值是评估特定状态和动作对的好坏的指标。

qlkaicx的博客 2975

将3DMax编辑的动画,导入给已经绑定蒙皮好的模型给Unity使用

现在程序猿想做独立游戏,即容易,也难。 说容易,引擎越来越傻瓜化。 说难,到哪去找靠谱的美术? 好在伟大的AssetStore(还有淘宝上)有大批不赖的资源可以用。 现成的模型,是好,但是,没有配套的动作,却是一件让人头疼的事情,即使用IK动画,也不能完美的弥补这一缺陷。 虽然Unity具备 retargeting 功能,但是,也不是万能的,很多情况下,非标准的骨骼会导致

正经的时候都在打游戏 1万+

STM32驱动HC-SR04超声波模块

本篇文章将带大家使用HAL库驱动HC-SR04超声波模块。超声波模块作为智能小车必备的模块,要学习智能小车的同学是必须掌握好这个模块的使用的。HC-SR04是一种常用的超声波传感器模块,也被称为超声波测距模块,广泛应用于各种自动化控制和测距系统中。它通常由超声波发射器、接收器、控制电路和外壳组成,可以实现非接触式的距离测量。下面是HC-SR04超声波模块的一些特性和技术参数:距离测量范围:2cm ~ 400cm(可调)。测量精度:0.3cm。工作电压:DC 5V。工作电流:15mA。

m0_49476241的博客 7684

基于粒子群优化的PID控制在药液流量控制系统中的应用

本文提出了一种基于粒子群优化(PSO)的PID控制算法,用于药液流量控制系统。系统采用C37控制器和Codesys 2.3编程环境实现,通过传感器实时监测流量、压力和车速,并控制水泵占空比和电动球阀开度来精确调节药液流量。硬件配置包括FT-2000流量传感器、PT-3000压力传感器和MV-500电动球阀等。控制算法将PSO与PID结合,使用ITAE指标优化PID参数,在Codesys中实现了包含PSO优化循环、PID控制等功能的程序模块。该系统通过分层控制策略和智能优化算法,提高了药液流量控制的精度和响应

AI的内部世界的博客 250

28-Halcon-- union_object_model_3d函数功能(用于3D模型融合)

Halcon算子union_object_model_3d是专业的3D模型融合工具,主要用于多视图拼接、部件组装和多源数据融合。该算子支持点云、网格和参数化模型输入,提供多种融合算法选择,包括基础点云拼接('points_cloud')、网格融合('mesh')和精确CAD布尔运算('cad')。工业应用涵盖逆向工程扫描拼接、汽车部件虚拟装配等场景,支持性能优化如空间分区和流式处理。算子还解决颜色属性融合、法向量保留等特殊需求,并提供拼接误差分析、拓扑验证等质量评估手段。最佳实践包含动态场景重建工作流和CA

weixin_45590420的博客 1055

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: QGraphicsScene类
下一篇: QGraphicsItem类
floatbit
博客等级 码龄24年 460粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值