Qt中常用的QGraphicsItem:QGraphicsEllipseItem/QGraphicsLineItem/QGraphicsPixmapItem/QGraphicsPolygonItem 📅 2026/7/13 5:02:21 非AI生成,觉得有用,就请您帮忙点赞转发收藏吧,您的鼓励是我创作的动力,多谢看官。一、什么是QGraphicsItemQGraphicsItem是 Qt 图形视图框架中所有可绘制图形元素的基类,用于在场景(QGraphicsScene)中定义具有独立坐标、形状、交互行为和动画能力的2D 图形项。二、QGraphicsItem的核心作用构建图形元素:作为矩形、椭圆、文本、图片、路径等标准项及自定义项的父类,负责定义几何形状与绘制逻辑 。支持交互操作:内置鼠标/键盘事件处理、拖放、悬停、焦点管理及碰撞检测能力,实现可交互图形 。管理变换与层级:支持平移、旋转、缩放等变换操作,并通过 Z 值控制堆叠顺序,维护父子项层级结构 。优化渲染性能:提供缓存模式(CacheMode)和重绘区域计算(boundingRect),减少无效绘制开销 。QGraphicsItem 为你做了什么?✅ 自动重绘✅ 局部更新✅ 鼠标事件✅ 键盘事件✅ 选中状态✅ ZValue 层级✅ 变换(平移 / 缩放 / 旋转)✅ 碰撞检测✅ 空间索引(BSP Tree)你只关心“这是什么”,Qt 管“怎么画、怎么交互”三、QGraphicsItem的关键机制必须实现的接口:自定义项需重写 boundingRect()(定义绘制范围)和paint()(执行绘制)。事件响应:通过重写 mousePressEvent、keyPressEvent 等处理交互,需设置对应标志(如ItemIsSelectable)启用功能 。坐标系统:拥有独立的局部坐标系,位置通过 pos() 映射到场景坐标,支持嵌套父子变换 。