今天一直在研究渐变颜色之类的问题,下午正好有机会和大家分享一下.
后面说了有关反走样的相干知识,下面来讲一下渐变。渐变是绘图中很罕见的一种功能,它是利用颜色插值使得两个或更多颜色之间能够平滑过渡,简单来讲就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是一下子酿成另一种颜色。它们常被用来创立二维图形的三维效果。渐变的算法比较复杂,写得欠好的话效率会很低,好在很多绘图系统都内置了渐变的功能,Qt也不例外。渐变一般是用在填充里面的,所以,渐变的设置就是在QBrush里面。
Qt支持三种类型的渐变,分别是线性渐变(QLinearGradient)、辐射渐变(QRadialGradient)、锥形渐变(QConicalGradient)。
1、线性渐变由两个控制点定义,连接这两点的线上设置一系列的颜色断点。这些断点被钳位到浮点数0和1之间,0对应第一个控制点,1对应第二个控制点,两个指定断点之间的颜色由线性插值得出。如代码(以下给出paintEvent()函数里面的代码):
void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
QLinearGradient linearGradient(60, 50, 200, 200);
linearGradient.setColorAt(0.2, Qt::white);
linearGradient.setCol