线性渐变:
概述
QLinearGradient
是
Qt
框架中用于创建线性渐变的类。线性渐变是一种从一个颜色平滑过渡到另一个 颜色的效果,其变化沿着两个点之间的直线进行。这种渐变在图形用户界面设计中非常常见,用于添加 深度、立体感或动态效果。
基本用法
要使用 QLinearGradient ,你需要执行以下几个基本步骤:1. 创建 QLinearGradient 对象 :指定渐变的起点和终点坐标。2. 设置颜色停靠点 :在渐变线上定义颜色和相应的位置。3. 使用渐变创建 QBrush :用 QLinearGradient 对象来创建一个 QBrush ,然后用它在 QPainter中进行绘制。
实例
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
//设置在渐变的起点和终点 --> 左上到右下角
QLinearGradient lineGradient(0,0,width(),height());
//设置渐变颜色和区间
// lineGradient.setColorAt(0.1,Qt::black);
// lineGradient.setColorAt(0.3,Qt::black);
// lineGradient.setColorAt(0.5,Qt::black);
//当然也可以使用QColor对象去细化我们的渐变过程 QColor(r,g,b,a) -- 参数:前三: 三原色,a -透明度
lineGradient.setColorAt(0.1,QColor(0,0,0,255)); //通过透明度去细节调控渐变的效果
lineGradient.setColorAt(0.3,QColor(0,0,0,200));
lineGradient.setColorAt(0.5,QColor(0,0,0,180));
lineGradient.setColorAt(1,Qt::white);
QBrush brush(lineGradient); // 初始化画刷 为渐变色形式
painter.setBrush(brush); //为painter对象赋值画刷
painter.drawRect(rect());//画刷绘制 整个窗口
}
效果演示
径向渐变:
概述
QRadialGradient 是 Qt 框架中用于创建径向渐变的类。径向渐变是一种从中心点向外部辐射的颜色渐变,通常在中心点有一种颜色,而向外围渐渐变化为另一种颜色。这种渐变非常适合用于模拟光源、阴影或创建圆形的立体感。
基本用法
要使用 QRadialGradient ,你需要执行以下几个基本步骤:
1. 创建 QRadialGradient 对象:指定渐变的中心点、半径以及焦点(可选)。
2. 设置颜色停靠点:在径向渐变中定义颜色和对应的位置。
3. 使用渐变创建 QBrush :利用 QRadialGradient 对象创建一个 QBrush ,然后用
它在 QPainter 中进行绘制
实例
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QRadialGradient radialGradient(400,400,200);//渐变圆心(400,400),200渐变半径
radialGradient.setColorAt(0.1,Qt::white);
radialGradient.setColorAt(1,Qt::black);
painter.setBrush(QBrush(radialGradient));
painter.drawRect(200,300,400,200);
}
效果演示
锥形渐变:
概述
QConicalGradient 是 Qt 框架中用于创建圆锥形渐变的类。圆锥渐变是一种渐变效果,其中颜色沿着圆锥的轮廓变化,类似于旋转颜色轮。这种渐变以其中心点为基点,颜色沿圆周分布,可以创建出富有动感的视觉效果。
基本用法
要使用 QConicalGradient ,你通常需要做以下几个步骤:
1. 创建 QConicalGradient 对象:指定渐变的中心点和起始角度。
2. 设置颜色停靠点:为渐变添加不同的颜色和对应的位置(角度)。
3. 使用渐变创建 QBrush :使用这个渐变对象来创建一个 QBrush ,然后应用到 QPainter 中进行绘图。
实例
// if 没有设置nopen的话,会有黑色的外边框
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
// 创建一个 QConicalGradient 对象
QConicalGradient conicalGradient(400, 400, 0); // 中心点 (100, 100),起始角度 0
// 添加颜色停靠点
conicalGradient.setColorAt(0.0, Qt::red);
conicalGradient.setColorAt(0.5, Qt::blue);
conicalGradient.setColorAt(1.0, Qt::red);
// 使用这个渐变创建 QBrush
QBrush brush(conicalGradient);
// 使用 QBrush 进行绘图
painter.setBrush(brush);
painter.setPen(Qt::NoPen); // 无边框
painter.drawRect(200,300,400,200); // 绘制矩形覆盖整个小部件
}
效果演示
QRadialGradient