QBrush之径向渐变画刷应用QRadialGradient::Spread
注:QRadialGradient默认的Spread方式为QRadialGradient::Spread::PadSpread,下面代码展示重复及反射的渐变方式。
重复渐变方式,指定不同的半径:
1 void Widget::paintEvent(QPaintEvent *event) 2 { 3 Q_UNUSED(event); 4 5 QPainter painter(this); 6 painter.fillRect(this->rect(),QBrush(QColor(255,255,255))); 7 painter.setRenderHint(QPainter::Antialiasing);//抗锯齿 8 9 QRadialGradient radialGradient(this->width()/2,this->height()/2,50,this->width()/2,this->height()/2); 10 // QRadialGradient radialGradient(this->width()/2,this->height()/2,100,this->width()/2,this->height()/2); 11 radialGradient.setColorAt(0,Qt::green); 12 radialGradient.setColorAt(1.0,Qt::black); 13 radialGradient.setSpread(QRadialGradient::Spread::RepeatSpread); 14 painter.fillRect(this->rect(),QBrush(radialGradient)); 15 }

反射渐变,指定不同的半径
1 void Widget::paintEvent(QPaintEvent *event) 2 { 3 Q_UNUSED(event); 4 5 QPainter painter(this); 6 painter.fillRect(this->rect(),QBrush(QColor(255,255,255))); 7 painter.setRenderHint(QPainter::Antialiasing);//抗锯齿 8 9 // QRadialGradient radialGradient(this->width()/2,this->height()/2,50,this->width()/2,this->height()/2); 10 QRadialGradient radialGradient(this->width()/2,this->height()/2,100,this->width()/2,this->height()/2); 11 radialGradient.setColorAt(0,Qt::green); 12 radialGradient.setColorAt(1.0,Qt::black); 13 radialGradient.setSpread(QRadialGradient::Spread::ReflectSpread); 14 painter.fillRect(this->rect(),QBrush(radialGradient)); 15 }

反射渐变、重复渐变附加偏心
1 void Widget::paintEvent(QPaintEvent *event) 2 { 3 Q_UNUSED(event); 4 5 QPainter painter(this); 6 painter.fillRect(this->rect(),QBrush(QColor(255,255,255))); 7 painter.setRenderHint(QPainter::Antialiasing);//抗锯齿 8 9 QRadialGradient radialGradient(this->width()/2,this->height()/2,50,this->width()/2,this->height()/2-40); 10 radialGradient.setColorAt(0,Qt::green); 11 radialGradient.setColorAt(1.0,Qt::black); 12 radialGradient.setSpread(QRadialGradient::Spread::RepeatSpread); 13 // radialGradient.setSpread(QRadialGradient::Spread::ReflectSpread); 14 painter.fillRect(this->rect(),QBrush(radialGradient)); 15 }

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

浙公网安备 33010602011771号