线段绘制】(QT)"/>
手把手教你制作【带吸附效果的线段绘制】(QT)
源码在文章最后
一、功能描述
需要完成带吸附效果的线段就需要完成一下功能点。
- 线段绘制。
- 当鼠标接近绘制好的线段时线段变粗。
- 当线段在线段两段时,按下鼠标选择定点移动。
- 当选择线段中间时,线段平移。
二、代码分析
实现以上功能,需要完成关键的三个鼠标响应事件。
// 鼠标按下事件
void mousePressEvent(QMouseEvent *event);
// 鼠标释放事件
void mouseReleaseEvent(QMouseEvent *event);
// 鼠标要移动事件
void mouseMoveEvent(QMouseEvent *event);
关键的绘图事件
// 界面的绘制在这里
void paintEvent(QPaintEvent *event);
关键数据结构
enum SelStatus {outLine, // 在线段外onStartPoint, // 在起始点onEndPoint, // 在结束点onLine // 在线段上
};
struct LineSegment {QPointF startPoint; // 线段起点QPointF endPoint; // 点段终点LineSegment(QPointF a, QPointF b){
更多推荐
手把手教你制作【带吸附效果的线段绘制】(QT)
发布评论