QPainter使用QPen及QBrush绘制点线面时的区别
1 void Widget::paintEvent(QPaintEvent *event) 2 { 3 Q_UNUSED(event); 4 5 QPainter painter(this); 6 7 painter.fillRect(this->rect(),QBrush(QColor(255,255,255))); 8 painter.setRenderHint(QPainter::Antialiasing);//抗锯齿 9 // painter.setPen(QPen(QColor(255,0,0))); 10 painter.setBrush(QColor(0,255,0)); 11 12 painter.drawLine(11,11,this->rect().width()/2,this->rect().height()/2); 13 painter.drawEllipse(this->rect().width()/2,this->rect().height()/2,50,50); 14 painter.drawArc(this->rect().width()/2+50,this->rect().height()/2+50,50,50,0,90*16); 15 }
以上代码中分别使用9、10两行代码不同的表现形式如下两图所示,通过对比效果可以看出QPainter在使用setPen后按照需求将内容绘制出来,在使用setBrush后将封闭图形进行填充,剩余部分按照默认黑色绘制出来;如果将9、10行代码注释打开,则效果如图三所示

记性太差,需要这么记下来

浙公网安备 33010602011771号