- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
QT图形视图框架TheGraphicsViewFramework
图形视图框架
The Graphics View Framework
关键词翻译对照表:
Graphics View :图形视图。
Scene :场景 /场景管理器( Scene 同时担负着管理场景中的对象,建立索引等工作)。
Item :这里翻译为对象, Graphics View Framework 下的 GraphicsItem 是场景中可以被
显示的元素。这里翻译成对象便于理解。
Graphics Item :图形对象。
Event :事件,等同于 Windows 下的消息。
正文:
图形视图( Graphics View )提供了支持大量自定义的二维图形对象( Item ,这里译为 “ 对象 ” ,方
便大家理解)交互( Interaction )的管理器,以及一个支持缩放和旋转操作的视图 widget 用于显示这
些元素。
该框架包含了事件( Event ,在 Windows 下可以理解为 “ 消息 ” )传播的框架,支持场景管理器中精
确的交互能力,以双精度浮点数表示对象位置、大小等属性的变化。图形元素还能处理键盘事件、鼠标
按下 / 移动 / 释放和双击的时间,同时也能跟踪鼠标移动。
图形视图使用 BSP 树( Binary Space Partitioning ,二叉空间分割)提供对图形对象的快速查找,可
以想像,即使是包含数以百万计对象的超大场景,也能够进行实时显示。
图形查看 Qt 中引入 4.2 ,取代其前身 QCanvas。 如果您要从 QCanvas 中移植过来,见 移植到图
形视图 。
主题:
图形视图架构
场景
视图
对象
图形视图框架中的类
图形视图坐标系
对象坐标
场景坐标
视图坐标
坐标映射
主要特点
缩放和旋转
打印
拖放
鼠标指针和 tooltip
动画
OpenGL 渲染
元素组
widgets 和布局
QGraphicsWidget
QGraphicsLayout
嵌入式 widget 支持
性能
浮点运算指令
图形视图架构
图形视图提供基于图像对象的方式来实现 model-view 的编程模式,这一点很像例程 InterView 中
的辅助类 QTableView, QTreeView 和 QListView。不同的视图可以显示一个场景,场景则包
含了不同的几何形状的对象。
场景
QGraphicsScene 提供了图形视图的场景管理器。场景管理器有如列职责:
提供一个用于管理大量对象的快速接口
将事件传递到每个对象上
管理对象的状态
提供未进行坐标变换的渲染功能,主要用于打印
场景管理器是图形对象 QGraphicsItem 的容器。调用 QGraphicsScene::addItem()将对象添
加到场景中后,你就可以通过调用场景管理器中的不同的查找函数来查找其中的图形对象。
QGraphicsScene::items()函数及其重载函数可以返回所有通过点、矩形多边形或路径等不同方式
选中的所有对象。 QGraphicsScene::itemAt()返回在指定点位置上最上面的对象。所有找到的对
象保持按照层叠递减的排列顺序(即第一个返回的对象是最顶层,和最后一个项目是最底层的对象)。
QGraphicsScene scene;
QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100));
QGraphicsItem *item = scene.itemAt(50, 50);
// item == rect
QGraphicsScene 的事件传递机制负责将场景时间传递给图形对象,同时也管理对象之间的时间传
文档评论(0)