在Qt scribble示例中(位于Qt examples / widgets / scribble /中),用户可以使用鼠标事件绘制笔颜色和笔宽的任何形状。
void ScribbleArea::mouseMoveEvent(QMouseEvent *event)
{
if ((event->buttons() & Qt::LeftButton) && scribbling)
drawLineTo(event->pos());
}
void ScribbleArea::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton && scribbling) {
drawLineTo(event->pos());
scribbling = false;
}
}
在原始示例中,无法再修改绘制的线条。我想更改它,以便我可以在绘制线条后更改线条颜色/宽度,还可以将图形保存为“草稿”,以便稍后可以编辑线条颜色/宽度。
我的第一个想法是每次编辑时都保存鼠标事件和重绘形状的点。如果绘图不小并且重绘所有内容的效率似乎很差,则可能需要处理大量数据。有没有更优雅的方式来做到这一点?谢谢。