Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1334674
  • 博文数量: 177
  • 博客积分: 3640
  • 博客等级: 中校
  • 技术积分: 1778
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-27 16:51
文章分类

全部博文(177)

文章存档

2014年(1)

2013年(10)

2012年(3)

2011年(163)

分类: LINUX

2011-05-20 12:54:01

渐变,是指逐渐的,有规律性的变化,是一种规律性很强的现象。提供了一个与渐变相关的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);//在相应的坐标画出来
阅读(1939) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~