Qt 进阶 06|图形视图框架 QGraphicsScene/QGraphicsView 图元与交互

发布时间:2026/6/9 3:21:44

Qt 进阶 06|图形视图框架 QGraphicsScene/QGraphicsView 图元与交互 一、框架三大核心组件图形视图Graphics View用于2D 大型图形、流程图、组态、矢量绘图三层结构QGraphicsScene 场景存放所有图元数据层管理元素集合QGraphicsView 视图可视化窗口展示场景内容支持缩放、平移QGraphicsItem 图元最小绘制单元矩形、文字、图片、自定义图形。二、基础使用流程创建场景 Scene创建各类图元 Item添加到场景视图 View 绑定场景显示内容三、基础示例代码cpp运行// 1. 创建场景 QGraphicsScene *scene new QGraphicsScene(this); scene-setSceneRect(0,0,500,300); // 场景大小 // 2. 添加内置图元 scene-addRect(20,20,80,60, QPen(Qt::blue), QBrush(Qt::cyan)); // 矩形 scene-addText(Graphics View 测试); // 文字 scene-addEllipse(150,50,60,60); // 圆形 // 3. 视图绑定场景 ui-graphicsView-setScene(scene); ui-graphicsView-setDragMode(QGraphicsView::RubberBandDrag); // 框选模式四、图元交互选中、拖拽给图元开启交互属性cpp运行QGraphicsRectItem *rectItem scene-addRect(100,100,70,50); rectItem-setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable); // ItemIsSelectable可选中 // ItemIsMovable可拖拽移动五、常用功能视图缩放ui-graphicsView-scale(1.2,1.2);清空场景scene-clear();自定义图元继承QGraphicsItem重写paint()和boundingRect()。小结Graphics View 适合海量 2D 图形、流程图、组态软件开发区分场景坐标和视图坐标是开发重点。

相关新闻