QGrphicsView, QGraphicsScene 和 QGraphicsItem 的区别

初学Qt的人会经常搞不清这三个图像类QGrphicsView, QGraphicsScene 和 QGraphicsItem,它们到底有什么区别呢?

QGrphicsView类实际上是为QGraphicsScene类的内容提空了一个控件,它在一个可滑动视图空间内可视化QGraphicsScene的内容。

QGraphicsScene类提供了一个平面来管理大量的2D的图像项目,像点,直线,多边形,圆等。它是QGraphicsItem类的容器。

打个比方来说,QGrphicsView类就像是一片空旷的场地,QGraphicsScene类是上面搭建的一个舞台,QGraphicsItem类是舞台上的各种东西。

时间: 2024-11-05 18:44:22

QGrphicsView, QGraphicsScene 和 QGraphicsItem 的区别的相关文章

Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解(转)

Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放.这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力. Items能处理键盘事件,鼠标的按,移动.释放.双击事件,也可以跟踪鼠标移动.Graphics View使用BSP树来提供对item的快速查找,使用这种技术,它可以实时地绘制大规模场景,甚至以百万items计.Grap

Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解

Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放.这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力.Items能处理键盘事件,鼠标的按,移动.释放.双击事件,也可以跟踪鼠标移动.Graphics View使用BSP树来提供对item的快速查找,使用这种技术,它可以实时地绘制大规模场景,甚至以百万items计.Graph

qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏,主机是mini2440,分辨率是800*480,程序写比較粗糙,但对刚開始学习的人还是有一点启示,大家一起进步. qt中提供了QGphicsView,QGraphicsScene,QGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实

QT-【转】2D编程

Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕上和绘图·设备上进行绘制,主要基于QPainter.QPainterDevice和QPainterEngine这3个类. 1.QPainter执行绘图操作,QPainter可以绘制一切简单的图形,从简单的一条直线到任何复杂的图形.QPainter类可以在一切继承QPainterDevice的子类上进行绘制操作. 2.QPainterDevice提供绘图设备,是一个二维空间的抽象, 3.QPainterEngine提供一些接口. 绘制简单图

QT开发(四十)——GraphicsView编程

QT开发(四十)--GraphicsView编程 一.QGraphicsScene 1.QGraphicsScene QGraphicsScene继承自QObject,是一个管理图元的容器,与QGraphicsView合用可以在2D屏幕上显示如线.三角形.文本.自定义图元等图元. QGraphicsScene是不可见的,只用于管理图元.为了查看场景,需要创建一个视图组件. 一个场景分为三个层:图元层.前景层和背景层.场景的绘制总是从背景层开始,然后是图形项层,最后是前景层. 2.事件处理与传播

Qt-俄罗斯方块

声明: 仅个人小记 整个有效项目的文件已经上传csdn: http://download.csdn.net/detail/qq_25847123/9718822 目录: 1.前言 2.效果展示 3.主要代码 4.开发日志 5.小结 1.前言 整个程序的完成花了我不少时间, 有许多知识细节不够清楚,边学边做,断断续续完成的.之前有用C++直接做过一次俄罗斯方块,界面简陋,是在控制台运行的.这次用Qt实现,沿用了之前的总体思想,技术细节有所改动. 2.效果展示 刚开始: 开始游戏: 背景界面随着分数

Qt中的强制类型转换

在C++开发中经常要进行数据类型的强制转换. 刚开始学习的时候,直接对基本数据类型强制类型转换,如float fnum = 3.14; int num = (int)fnum; 随着C++标准的发展,又提供了dynamic_cast.const_cast .static_cast.reinterpret_cast等高级安全的强制转换方法. dynamic_cast: 通常在基类和派生类之间转换时使用,run-time cast.const_cast: 主要针对const和volatile的转换.

QT5中运行QT4场景程序 QGraphicsItem *QGraphicsScene::itemAt 函数报错的解决

int main(int argc,char* argv[ ]) { QApplication app(argc,argv); //新建场景 QGraphicsScene scene; //创建矩形图形项 QTransform transform; //QT5添加 transform.rotate(+0.0);//QT5添加 QGraphicsRectItem *item = new QGraphicsRectItem(0, 0, 100, 100); //将图形项添加到场景中 scene.ad

QT 继承自QGraphicsItem

main.obj:-1: error: LNK2001: 无法解析的外部符号 "public: __thiscall MyItem::MyItem(void)" ([email protected]@[email protected]) 经过网上的遍历,找到N种解决办法也没解决掉,不过最后终于被我解决掉啦..哈哈 在mian.cpp中 把myitem.cpp的头文件加上 然后清理项目 在运行就行了 myitem.h #ifndef MYITEM_H #define MYITEM_H c