您的位置:首页 > 编程语言 > Qt开发

Qt5 渐变

2017-03-29 15:41 120 查看
void MainWindow::paintEvent(QPaintEvent *event)

{

QPainter painter(this);

painter.setRenderHint(QPainter::Antialiasing,true);

painter.save();

//线性渐变

QLinearGradient linearGradient(100,150,150,100);//渐变起点终点坐标表示方向

linearGradient.setColorAt(0.0,Qt::red);

linearGradient.setColorAt(0.2,Qt::green);

linearGradient.setColorAt(0.4,Qt::blue);

linearGradient.setColorAt(0.6,Qt::cyan);

linearGradient.setColorAt(0.8,Qt::magenta);

linearGradient.setColorAt(1.0,Qt::red);

QBrush brush(linearGradient);

painter.setBrush(brush);

painter.drawEllipse(100,100,150,150);

//角度渐变

QConicalGradient conicalGradient(400,400,0);//中心坐标,起始角度

conicalGradient.setColorAt(0.0,Qt::red);

conicalGradient.setColorAt(0.2,Qt::green);

conicalGradient.setColorAt(0.4,Qt::blue);

conicalGradient.setColorAt(0.6,Qt::cyan);

conicalGradient.setColorAt(0.8,Qt::magenta);

conicalGradient.setColorAt(1.0,Qt::red);

brush = conicalGradient;

painter.setBrush(brush);

painter.drawEllipse(300,300,200,200);

//辐射渐变

QRadialGradient radialGradient(700,500,100,700,500);//中心坐标,半径,焦点坐标

radialGradient.setColorAt(0.0,Qt::red);

radialGradient.setColorAt(0.2,Qt::green);

radialGradient.setColorAt(0.4,Qt::blue);

radialGradient.setColorAt(0.6,Qt::cyan);

radialGradient.setColorAt(0.8,Qt::magenta);

radialGradient.setColorAt(1.0,Qt::yellow);

brush = radialGradient;

painter.setBrush(brush);

painter.drawEllipse(600,400,200,200);

painter.restore();


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt qt5 渐变 C++