QPainter::begin: Painter already active

QT一直输出打印 QPainter::begin: Painter already active

QPainter::begin: Painter already active
QPainter::begin: Painter already active
QPainter::begin: Painter already active
QPainter::begin: Painter already active
QPainter::begin: Painter already active
QPainter::begin: Painter already active
QPainter::begin: Painter already active

重新实现paintEvent函数时,如果使用QPainter painter(this);,再使用begin、end则会重复包含QPainter

如下程序,是错在不断输出的问题

void arrivedstation::paintEvent(QPaintEvent *event)
{
    
    
		QPainter painter(this);
		QColor color(0,0,0,255);
		QPen pen;
		pen.setWidth(4);
		pen.setColor(color);
		painter.setPen(pen);
		painter.begin(this);
		painter.drawLine(QPoint(560,55),QPoint(620,55));
		painter.drawLine(QPoint(590,45),QPoint(620,55));
		painter.drawLine(QPoint(590,65),QPoint(620,55));
		painter.end();
}

修改后的程序

void arrivedstation::paintEvent(QPaintEvent *event)
{
    
    
		QPainter painter(this);
		QColor color(0,0,0,255);
		QPen pen;
		pen.setWidth(4);
		pen.setColor(color);
		painter.setPen(pen);
		//painter.begin(this);
		painter.drawLine(QPoint(560,55),QPoint(620,55));
		painter.drawLine(QPoint(590,45),QPoint(620,55));
		painter.drawLine(QPoint(590,65),QPoint(620,55));
		//painter.end();
}

猜你喜欢

转载自blog.csdn.net/WANGYONGZIXUE/article/details/110420825