非常抱歉给您带来了困扰。请尝试修改mousePressEvent
和mouseMoveEvent
中的代码如下:
void mousePressEvent(QMouseEvent *event) override {
if (event->button() == Qt::LeftButton) {
currentCurve.clear();
currentCurve.append(event->pos());
drawing = true;
update();
}
}
void mouseMoveEvent(QMouseEvent *event) override {
if (drawing && event->buttons() & Qt::LeftButton) {
currentCurve.append(event->pos());
QPainterPath path;
path.moveTo(currentCurve.first()); // 添加此行以修复起点问题
for (int i = 1; i < currentCurve.size(); ++i) {
path.lineTo(currentCurve[i]);
}
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, 2));
painter.drawPath(path); // 使用新绘制的路径进行绘制
}
}
这样修改后,应该可以解决起点问题。如果还有其他问题,请随时提问!
内容由零声教学AI助手提供,问题来源于学员提问