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行代码注释打开,则效果如图三所示

image  image  image

posted @ 2026-01-21 14:53  左边的翼  阅读(2)  评论(0)    收藏  举报