没有合适的资源?快使用搜索试试~ 我知道了~
首页QT Graphics View框架.pdf
QT Graphics View框架.pdf
需积分: 50 20 下载量 12 浏览量
更新于2023-10-20
评论 1
收藏 468KB PDF 举报
本文档主要介绍Graphics View框架,该框架实现了模型-视图结构的图形管理,能对大量图元进行管理,支持碰撞检测,坐标变换和图元组等多种方便的功能。
资源详情
资源评论
资源推荐
Graphics View 框架
本文主要翻译自 QT Graphics View 官方文档
一、Graphics View 框架简介
QT4.2 开始引入了 Graphics View 框架用来取代 QT3 中的 Canv
as 模块,并作出了改进,Graphics View 框架实现了模型-视图结
构的图形管理,能对大量图元进行管理,支持碰撞检测,坐标变
换和图元组等多种方便的功能。
Graphics View 框架结构主要包含三个主要的类 QGraphicsSce
ne(场景)、QGraphicsView(视图)、QGraphicsItem(图
元)。QGraphicsScene 本身不可见,是一个存储图元的容器,必
须通过与之相连的 QGraphicsView 视图来显示及与外界进行交
互,主要提供图元的操作接口、传递事件和管理各个图元状态,
提供无变换的绘制功能(如打印);QGraphicsView 提供一个可
视的窗口,用于显示场景中的图元,一个场景中可以有多个视
图。QGraphicsItem 是场景中各个图元的基础类,QT 提供了常用
图形图元的标准类,如矩形(QGraphicsRectItem)、椭(QGraphic
sEllipseItem)、文本(QGraphicsTextItem)。
GraphicsView 是一个基于图元的 Model/View 架构的框架,每
一个组件都是一个独立的元素。QPainter 采用面向过程的描述方
式绘图;GraphicsView 采用面向对象的描述方式绘图。Graphics
View 绘图时首先创建一个场景,然后创建图元对象(如一个直线
对象、一个多边形对象),再使用场景的 add()函数,将图元对
象添加到场景中,最后通过视图进行显示。对于复杂的图像来
说,如果图像包含大量的直线、曲线、多边形等图元对象,管理
图元对象比管理 QPainter 的绘制过程语句要容易,并且图元对象
更符合面向对象的思想,图形的可复用性更好。
二、QGraphicsScene 场景
QGraphicsScene 场景是 QGraphicsItem 对象的容器,主要功
能如下:
A、提供管理大量图元的快速接口
B、传播鼠标、键盘等事件给场景中的每个图元
C、管理图元状态,如图元选择和焦点处理
D、提供无变换的渲染功能,如打印
通过函数 QGraphicsScene::addItem()可以加入一个图元到场景
中。图元可以通过多个函数进行检索:QGraphicsScene::items()
及重载函数可以返回和点、矩形、多边形或向量路径相交的所有
图元。QGraphicsScene::itemAt()返回指定点的最顶层图元。所
有图元查找函数按照递减栈顺序返回图元,第一个返回的图元位
置最顶层,最后一个返回的图元位于最底层。
QGraphicsScene 的事件传播体系将场景事件发送给图元,同
时也管理图元之间的事件传播。如果场景收到了在某一点的鼠标
单击事件,场景会把事件传给在这一点的最顶层图元。QGraphics
Scene 负责管理一些图元的状态,如图元选择和焦点。通过 QGrap
hicsScene::setSeletionArea()函数选择多个图元,选择区域可
以是任意的形状,使用 QPainterPath 表示;要得到当前选择的图
元列表可以使用 QGraphicsScene::selectedItems()函数;QGrap
hicsScene 还管理图元的键盘输入焦点状态,可以通过 QGraphics
Scene::setFocusItem()函数或者 QGraphicsItem::setFoucs()函
数来设置图元的焦点;获得当前具有焦点的图元使用函数 QGraph
icsScene::foucsItem()。可以使用 QGraphicsScene::render()
函数在绘图设备上绘制场景。
三、QGraphicsView 视图
QGraphicsView 是视图窗口部件,使场景内容可视化,可以连
接多个视图到一个场景,也可以为相同数据源的数据集提供不同
的视图。QGraphicsView 是可滚动的窗口部件,可以提供滚动条
来浏览大的场景。如果需要使用 OpenGL,可以使用 QGraphicsVie
w::setViewport()将视图设置为 QGLWidget 组件。
视图接收键盘和鼠标的输入事件,并把事件翻译为场景事件
(将坐标转换为场景的坐标),再发送到场景。使用变换矩阵函数
QGraphicsView::martix()可以变换场景的坐标系统,通过变换场
景的坐标系统可以实现场景的缩放和旋转。为了方便,QGraphics
View 提供了视图和场景的坐标转换函数:QGraphicsView::mapTo
Scene()和 QGraphicsView::mapFromScene()。
四、QGraphicsItem 图元
QGraphicsItem 是图元的基类。QGraphicsView 框架提供了多
种标准的图元:
QGraphicsEllipseItem 椭圆图元
QGraphicsLineItem 直线图元
QGraphicsPathItem 路径图元
QGraphicsPixmapItem 图像图元
QGraphicsPolygonItem 多边形图元
剩余12页未读,继续阅读
奥修的灵魂
- 粉丝: 144
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0