要实现橡皮擦功能,你可以修改 mouseMoveEvent
方法来检测鼠标右键按下,并将对应的路径进行删除。以下是修改后的代码示例:
void WhiteBoard::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() & Qt::LeftButton) {
// 绘制画笔路径逻辑
update();
}
if (event->buttons() & Qt::RightButton) {
if (currentPathIndex >= 0 && currentPathIndex < paths.size()) {
// 删除当前路径
paths.remove(currentPathIndex);
pathPens.remove(currentPathIndex);
redoPaths.clear();
redopathPens.clear();
--currentPathIndex;
update();
}
}
}
在 mouseMoveEvent
方法中添加了对右键点击的判断,如果检测到右键按下,则会删除当前路径。注意,在删除路径时也要清空重做(redo)路径。
这样,当你用鼠标右键在绘图区域上移动时,就能实现橡皮擦效果。希望能帮到你!如有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问