Qt实现CAD软件的多种图形绘制功能
Qt相关基础知识GraphicsView绘图架构
Qt为绘制复杂的可交互图形提供了Graphics View绘图架构,是一种基于图形项(GraphicsItem)模型/视图模式。
场景
QGraphicsScene类提供绘图场景(Scene)。场景是不可见的,是一个抽象的管理图形项的容器,可以向场景中添加图形项,获取场景中图形项等,可以类比QStandardItemModel。
视图
QGraphicsView类负责就是用来提供绘图框架中的视图,可以为同一个场景提供多个不同的视图,用于对同一数据集提供不同的视口,可以类比QTableView。
初学QtGraphicsView绘图架构时,我还纳闷,为同一数据及提供不同的视图,每个视图上呈现的图形是完全一样的,能有什么用呢?
本篇文章便是该技术的巧妙应用,请耐心读完全文。
这一点对于绘制不同的图形(不同绘图功能)提供了便利,不同的绘图功能,可以认为是不同的交互,而视图又是软件与用户交互的接口。所以对于同一个场景,提供多个不同视图,实现不同的交互,也就是实现不同的绘图功能时,切换不同的视图即可。
图形项
QGraphicsItem就是场景中图形元件。可以理解为场景中的数据元素,可以类比QStandardItem。比如一个圆、多边形、