通过上篇笔记我们知道可以采用QPainter在绘图设备的paintEvent事件里编写绘图的程序,这种绘图方式效率相对较低,绘制的图形比较简单。Qt为绘制复杂的可交互图形提供了Graphics View绘图架构,是一种基于图形选项(Graphics Item)Model/View框架(可参见本人博客Qt开发总结(14)——Model/View框架),而且其核心试图组件QGraphicsView也作为常用显示控件在Qt开发总结(13)——控件之显示控件中提及。使用Graphics View架构可以绘制复杂的有几万个基本图形元件的图形,并且每个图形元件是可选择、可拖放和可修改的,这类似与绘图软件的功能。
架构组成
Graphics View架构主要由3个部分组成,即场景、视图和图形项。
1.场景
QGraphicsScene提供绘图场景(Scene)。场景是不可见的,是一个抽象的图形项管理容器,可以向场景中添加图形项,获取场景中的某个图形项等,主要功能有:
- 提供管理大量图形项的快速接口,如QGraphicsScene::addItem(),QGraphicsScene::items()。
- 将事件传播给每个图形项,例如将鼠标点击事件传递给鼠标位置的图形项。
- 管理每个图形项的状态,例如选择状态QGraphicsScene::setSelectionArea(),焦点状态
Qt开发:深入解析Graphics View绘图架构
本文详细介绍了Qt的Graphics View架构,包括场景、视图和图形项的组成,以及它们各自的关键功能。Graphics View提供了一个高效且可交互的图形绘制框架,支持复杂的图形元件操作,如选择、拖放和修改。此外,还涵盖了坐标系统、关键特性,如缩放、旋转、打印、拖放、光标提示、动画以及图形项组和布局管理。
订阅专栏 解锁全文
6226

被折叠的 条评论
为什么被折叠?



