在Qt中,QConicalGradient
类用于创建一个锥形渐变,这种渐变是从一个中心点向四周辐射的。你可以设置中心点、渐变角度以及这些角度上对应的颜色。
以下是一个使用QConicalGradient
设置渐变的示例代码:
#include <QPainter>
#include <QConicalGradient>
#include <QWidget>
class GradientWidget : public QWidget {
protected:
void paintEvent(QPaintEvent *event) override {
QPainter painter(this);
// 创建一个锥形渐变对象
QConicalGradient gradient(100, 100, 0.0); // 设置中心点(100, 100)和起始角度0.0(默认向上)
// 设置渐变角度上对应的颜色
gradient.setColorAt(0.0, Qt::red); // 起始角度为红色
gradient.setColorAt(0.33, Qt::yellow); // 1/3圆周处为黄色
gradient.setColorAt(0.66, Qt::green); // 2/3圆周处为绿色
gradient.setColorAt(1.0, Qt::blue); // 终点角度为蓝色(整个圆周)
// 创建一个画笔并设置渐变
QBrush brush(gradient);
painter.setBrush(brush);
// 使用该画笔绘制一个椭圆(或其他形状)来展示渐变效果
painter.drawEllipse(50, 50, 200, 200); // 绘制一个椭圆,其中心与渐变中心对齐
}
};
// 在主函数或其他地方创建并使用这个widget
// ...
在这个示例中,QConicalGradient
的构造函数接受三个参数:中心点的x坐标、y坐标和起始角度(以度为单位,顺时针方向)。然后,我们使用setColorAt()
方法设置了不同角度上的颜色。在这个例子中,我们从0度(向上)开始,设置了红色、黄色、绿色和蓝色,分别对应0度、120度、240度和360度(或0度,因为颜色在渐变中是循环的)。最后,我们创建了一个QBrush
对象,将渐变设置为其纹理,并使用这个画笔绘制了一个椭圆来展示渐变效果。椭圆的中心与渐变的中心对齐,以便更好地展示渐变效果。