QT QPainter 在 QPixmap 上画图后,如何清除涂鸦板上的结果,画另外一张?
如题,QT新手,在Widget的基类中,用QPixmap开了一块区域做涂鸦板,但是现在想加入一个“清除”功能,可以重新开始画,请指教,另外,在涂鸦板上画线段时,最后一点总...
如题,QT新手,在Widget的基类中,用QPixmap开了一块区域做涂鸦板,但是现在想加入一个“清除”功能,可以重新开始画,请指教,另外,在涂鸦板上画线段时,最后一点总是连接到(0,0)点处,不知是为什么。
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
resize(500,450);
pix = QPixmap(500,300);
pix.fill(Qt::white);
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter pp(&pix);
if( flag == false)
{
pp.setPen(Qt::black);
pp.drawLine(lastPoint,endPoint);
lastPoint = endPoint;
QPainter painter(this);
painter.drawPixmap(0,0,pix);//将绘图板定义在0,0位置处
}
else
{
pp.setPen(Qt::blue);
for(int i = 0; i < ((n-1)*grain); i++)
{
pp.drawLine(cspline->Spline[i].x,cspline->Spline[i].y,cspline->Spline[i+1].x,cspline->Spline[i+1].y);
}
QPainter painter(this);
painter.drawPixmap(0,0,pix);
}
} 展开
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
resize(500,450);
pix = QPixmap(500,300);
pix.fill(Qt::white);
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter pp(&pix);
if( flag == false)
{
pp.setPen(Qt::black);
pp.drawLine(lastPoint,endPoint);
lastPoint = endPoint;
QPainter painter(this);
painter.drawPixmap(0,0,pix);//将绘图板定义在0,0位置处
}
else
{
pp.setPen(Qt::blue);
for(int i = 0; i < ((n-1)*grain); i++)
{
pp.drawLine(cspline->Spline[i].x,cspline->Spline[i].y,cspline->Spline[i+1].x,cspline->Spline[i+1].y);
}
QPainter painter(this);
painter.drawPixmap(0,0,pix);
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询