ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

QBrush之路径渐变画刷(Qt::BrushStyle::LinearGradientPattern)

QBrush之路径渐变画刷(Qt::BrushStyle::LinearGradientPattern)
 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 
10     QLinearGradient gradient(0,0,this->width(),0);
11     gradient.setColorAt(0, Qt::red);
12     gradient.setColorAt(1, Qt::blue);
13 
14     QBrush br(gradient);
15     painter.setBrush(br);
16     painter.drawEllipse(0,0,this->width()/3,this->height()/3);
17 
18     painter.drawEllipse(this->width()/3,this->height()/3,this->width()/3,this->height()/3);
19     painter.drawEllipse(this->width()*2/3,this->height()*2/3,this->width()/3,this->height()/3);
20 }

以上代码中第10行形参为控制渐变方向,当x1=x2时为垂直渐变,当y1=y2时为水平渐变,以下两图分别展示水平渐变及垂直渐变效果

image  image

返回列表