要在图像上绘制一个框,并在下一次绘制时将先前的框清除,可以使用以下方法:
- 创建一个变量来存储上次绘制的框的坐标信息。
QRect previousRect;
- 在绘制函数中,首先检查是否存在上次绘制的框。如果存在,则使用背景色或透明色覆盖上次的框。
void MyWidget::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
// 绘制背景等
// 清除上次绘制的框
if (!previousRect.isNull()) {
painter.fillRect(previousRect, Qt::transparent);
// 或者使用背景色 painter.fillRect(previousRect, palette().background());
}
// 绘制当前的框
QRect currentRect = QRect(/* 框的坐标信息 */);
painter.drawRect(currentRect);
// 更新上次绘制的框
previousRect = currentRect;
}
这样,在每次重新绘制之前都会清除之前绘制的框。请根据实际情况修改代码以适应您的需求。
内容由零声教学AI助手提供,问题来源于学员提问