逻辑梳理
实现效果如下图:
逻辑如下:
将线段使用QVector进行保存,因为可能需要绘制多条线段.
鼠标按下和释放的时候记录起始和终点位置,并且保存在数据列表中.
鼠标移动过程中,动态刷新图像绘制,并且绘制临时坐标点(因鼠标没被释放,因此终点坐标随时变化)
关键的消息接口 void mousePressEvent(QMouseEvent *event); // 鼠标按下,当鼠标按下时发送该信号 void mouseReleaseEvent(QMouseEvent *event); // 鼠标释放,当鼠标释放时发送信号 // 鼠标移动. m_drawingPaperView->setMouseTracking(true); 注意需要设置捕获鼠标轨迹. void mouseMoveEvent(QMouseEvent *event); void paintEvent(QPaintEvent *event); // 绘制,当执行update时刷新绘制.
源码
代码结构:
mainwindow.h
#ifnde
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
评论记录:
回复评论: