QT学习 渐变填充

 

渐变,是指逐渐的,有规律性的变化,是一种规律性很强的现象。Qt提供了一个与渐变相关的QGradient类,目前支持三种渐变画刷,分别是线性渐变(QLinearGradient)、辐射渐变(QRadialGradient)、角度渐变(QConicalGradient),如下图所示:

从左到右依次为:线性渐变、辐射渐变、角度渐变

下面来看一下实现的代码,由于程序较简单,所以将解释都加在了每行代码的后边:

1.线性渐变QLinearGradient

1
2
3
4
5
6
7
8
9
10
11
QPainter painter(this);//创建了一个QPainter对象实例
painter.setRenderHint(QPainter::Antialiasing, true);//消除锯齿
QLinearGradient linearGradient(20,20, 150, 150);
//创建了一个QLinearGradient对象实例,参数为起点和终点坐标
linearGradient.setColorAt(0.2, Qt::white);
linearGradient.setColorAt(0.4, Qt::blue);
linearGradient.setColorAt(0.6, Qt::red);
linearGradient.setColorAt(1.0,Qt::yellow);
//上面的四行分别设置渐变的颜色和路径比例
painter.setBrush(QBrush(linearGradient));//将linearGradient对象传递给画刷
painter.drawEllipse(10,10, 150, 150);//在相应的坐标画出来

2.辐射渐变QRadialGradient

1
2
3
4
5
6
QRadialGradient radialGradient(275,85,75,275,85);
//创建了一个QRadialGradient对象实例,参数分别为中心坐标,半径长度和焦点坐标
radialGradient.setColorAt(0,Qt::black);
radialGradient.setColorAt(1.0,Qt::green);//设置渐变的颜色和路径比例
painter.setBrush(QBrush(radialGradient));
painter.drawEllipse(200,10,150,150);//在相应的坐标画出来

3.角度渐变QConicalGradient

1
2
3
4
5
6
QConicalGradient conicalGradient(465,85,10);
//创建了一个QConicalGradient对象实例,参数分别为中心坐标和初始角度
conicalGradient.setColorAt(0,Qt::white);
conicalGradient.setColorAt(0.8,Qt::blue);//设置渐变的颜色和路径比例
 painter.setBrush(QBrush(conicalGradient));
painter.drawEllipse(390,10,150,150);//在相应的坐标画出来


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值