QPainter和QGraphicsView的区别

QPainter适用于绘制简单、不可移动的图像,而QGraphicsView提供面向对象的图形管理,支持图元操作如旋转、移动。QGraphicsView基于QGraphicsScene,提供场景坐标、视图坐标和图形坐标系统,用于管理和交互大量图元。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QPainter和QGraphcisView的区别理解:

1、 QPainter
2、 QGraphicsView
3、 QPainter和QGraphicsView区别的理解
4、QGraphicsView框架基本原理

QPainter:


1、 QPainter用于“画”出图形,这里我为什么要把画打上引号呢?因为这里可以把QPainter想象成一支笔,用这个工具在纸上画出图像过后,对于整个纸张来说,画出来的东西就是不可移动的。

2、 且用这个工具画出来的图像一般都复杂度不高

3、因此QPainter工具主要用于画出简单,不可移动的图像。即画出图像过后,纸上所画出来的东西就不能移动了。


QGraphicsView:

1、 按照官方文件来讲,QGraphicsView是一种模型–视图结构的图形管理工具。可以对单个图元进行管理操作。
2、能做的操作,进行碰撞检测坐标变换,图元的选择编辑移动等。


QPainter和QGraphicsView区别的理解:

针对两者的区别可以从编程的角度来理解;
QPainter:是一种面向过程的工具,即用这个工具画出的图,是绘制出一个过程,即从坐标(0,0)到坐标(200,300)画出一条直线。一旦画出来来过后,整个事件就完成了。图形就一直在那里。比如你在纸上用铅笔画出来一条直线,如果把白纸作为背景,那么画出来的直线就不可以移动
QGraphicsView:可以理解为一种面向对象的工具,QGraphicsView工具是一种将直线椭圆矩形等各种形状作为一个个配件,而编程者需要做的是利用这些配件,组装出自己想要的图像,这些配件是可以被操作的,其中的操作包括,旋转移动放大缩放选择等等,就不像QPainter的那样----画出来即是固定。所以QGraphicsView更像是一种可供用户DIY的玩具。可以用来组装这些部件。比如搭积木,用方块,圆,长方体,拱形等,搭建出来一个复杂的更大更精细的物件。


QGraphicsView框架基本原理:

QGraphicsView的框架
QGraphicsView框架
QGraphicsItem
QGraphicsScene
QGraphicsView

QGraphicsScene

场景本身不可见,是一个抽象的管理图元,图形项的容器,可以向场景中添加图元,获取某个图元。
1.管理大量图元的接口。
2.传播事件到场景中的单一或者所有图元。
3.提供未经变换的渲染功能,用于打印。
4.管理图元状态,如图元选择和焦点处理。


#### QGraphicsView 为场景中提供绘图的视图软件,用于显示场景中的内容,可以为一个场景设置几个视图,用于对同一个数据集提供不同的观察方式。
#### QGraphicsItem 提供基本的图形元件,支持事件响应,如鼠标事件,键盘事件,拖放事件,以实现图形的交互事件。
坐标系统

1.场景坐标
即以设置的场景的左上角为原点(0,0)
在这里插入图片描述2.视图坐标
窗口界面的物理坐标,单位是像素,左上角为原点坐标,所有事件最开始都使用视图坐标,为了和图元交互,需要转换为场景坐标。

3.图形坐标
通常以图元的中心为原点,图元中心也是所有坐标变换的原点,坐标系方向向上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值