网站大量收购独家精品文档,联系QQ:2885784924

Qt学习笔记--图形视图框架.doc

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Qt学习笔记--图形视图框架

Qt学习笔记--图形视图框架(一) 2010-07-11 07:40 优点:处理多个图元,单击,拖动,选择图元 架构:一个场景,多个图元位于其中,通过视图显示 主要应用: 绘图软件,显示地图软件 当使用没有变换的视图观察场景时,场景中的一个单元对应屏幕上的一个像素 图元坐标通常以图元中心为原点,X轴正方向为向右,Y轴正方向为向下 场景坐标的原点在场景中心,X轴正方向为向右,Y轴正方向为向下 视图坐标以左上角为原点,X轴正方向为向右,Y轴正方向为向下 所有的鼠标事件最开始都是使用视图坐标 场景:图元的容器 1.提供管理很多图元的接口 2.传播事件到图元中 3.管理图元状态,例如选择和焦点处理 4.提供非转换的绘制功能,主要用于打印 QGraphicsScene scene; QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100)); // 添加图元 QGraphicsItem *item = scene.itemAt(50, 50); // 查询图元 // item == rect; 通过QGraphicsScene::setSelectionArea()可以选择场景的任一个图元, QGraphicsScene::setSelectedItems()返回被选择的图元 设置焦点图元QGraphicsScene::setFocusItem(), setFocus(), QGraphicsScene::focusItem(), 返回焦点图元 视图: 一个可视的子部件,可视化场景的内容 多个视图可以显示同一个场景 坐标转换:QGraphicsView::mapToScene(), QGraphicsView::mapFromScene() 图元: 支持鼠标事件,滚轮事件,上下文菜单事件 支持键盘输入焦点,按键事件 支持拖放 支持分组 冲突探测 提供坐标转换,图元与场景,图元与图元之间 利用QGraphicsItem::shape()和QGraphicsItem::collidesWith() 实现冲突探测,这2个函数都是虚函数 相关类:QGraphicsScene, QGraphicsItem, QGraphicsView QGraphicsItem子类: QGraphicsEllipseItem provides an ellipse item QGraphicsLineItem provides a line item QGraphicsPathItem provides an arbitrary path item QGraphicsPixmapItem provides a pixmap item QGraphicsPolygonItem provides a polygon item QGraphicsRectItem provides a rectangular item QGraphicsSimpleTextItem provides a simple text label item QGraphicsTextItem provides an advanced text browser item QGraphicsSvgItem provides a SVG file item QGraphicsScene: 拥有多个图元,包含三层:背景层,图元层,前景层 背景层和前景层可以使用QBrush绘制,也可以使用drawBackground(),drawForeground()实现 如果使用图片作为背景,可以用texture QBrush(pixmap)实现 前景层brush可以使用半透明的白色实现褪色效果,或者使用交叉模式实现网格重叠 场景可以告诉我们,哪些图元发生冲突,哪些图元被选择,哪些图元位于一个特定的点或者区域 每个图元可以是:1.顶级图元,场景是它的父亲;2.孩子,它的父亲是另一个图元,任何作用于父图元的转换 都将自动应用于它的孩子 2种分组方式:1.一个图元成为另一个图元的孩子; 2.使用QGraphicsItemGroup。使用分组,可以使位于同一个 组的所有图元的操作都相同 QGraphicsView: 是一个Widget,用于显示一个场景,提供滚动条功能和转换功能,可以缩放和旋转场景。 默认使用内建的2D画图引擎,可以使用OpenGL:在构造后,调用setViewport() 坐标系统: 使用3种坐标系统:viewport, scene, item viewport: 位于QGraphicsVie

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档