qt 绘图 实现鼠标拖拽放大缩小矩形 细节1:鼠标在矩形不同位置鼠标不同提示 细节2:可多次添加,多个之间区分不同层
时间: 2023-06-17 11:03:54 浏览: 95
Qt鼠标拖动绘制基本几何图形(直线、矩形、圆形、椭圆)
5星 · 资源好评率100%
实现鼠标拖拽放大缩小矩形的方法如下:
1. 定义一个矩形类,包含起始点和终止点坐标,以及矩形颜色等属性。
2. 在继承自 QWidget 的类中重写 mousePressEvent、mouseMoveEvent 和 mouseReleaseEvent 三个事件函数,分别处理鼠标按下、移动和释放事件。在 mousePressEvent 中记录起始点坐标,在 mouseMoveEvent 中根据当前鼠标位置更新矩形的终止点坐标,并重绘矩形;在 mouseReleaseEvent 中完成矩形的绘制和存储。
3. 在重绘事件 paintEvent 中绘制已经存储的矩形。
4. 实现鼠标在矩形不同位置鼠标不同提示的方法,在鼠标移动事件中判断鼠标位置是否在矩形内部,若在则设置鼠标为 Qt::SizeAllCursor;否则根据鼠标位置与矩形边界的关系设置不同的鼠标形状。
5. 实现可多次添加,多个之间区分不同层的方法,可以使用一个 QList 存储多个矩形,每个矩形对象都有一个唯一的 ID,绘制时通过 ID 区分不同的矩形。
下面是示例代码:
阅读全文