Qt 绘制渐变图形:圆形渐变、锥形渐变示例
以下为绘制渐变图形的示例代码:
#include <QApplication>
#include <QWidget>
#include <QPainter>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget w;
w.resize(300, 300);
w.show();
QPainter painter(&w);
painter.setRenderHint(QPainter::Antialiasing, true); // 抗锯齿
// 绘制圆形渐变图形
QRadialGradient gradient1(w.width() / 2, w.height() / 2, w.width() / 3);
gradient1.setColorAt(0, QColor(255, 0, 0)); // 红色
gradient1.setColorAt(0.5, QColor(0, 255, 0)); // 绿色
gradient1.setColorAt(1, QColor(0, 0, 255)); // 蓝色
painter.setBrush(gradient1);
painter.drawEllipse(w.rect());
// 绘制锥形渐变图形
QConicalGradient gradient2(w.width() / 2, w.height() / 2, 45);
gradient2.setColorAt(0, QColor(255, 0, 0)); // 红色
gradient2.setColorAt(0.5, QColor(0, 255, 0)); // 绿色
gradient2.setColorAt(1, QColor(0, 0, 255)); // 蓝色
painter.setBrush(gradient2);
painter.drawRect(w.rect());
return app.exec();
}
其中,第一个渐变图形使用的是圆形渐变模式QRadialGradient,其构造函数的参数为中心点坐标和半径。setColorAt函数用于设置渐变颜色和位置,位置为 0 表示渐变起点,位置为 1 表示渐变终点。
第二个渐变图形使用的是锥形渐变模式QConicalGradient,其构造函数的参数为中心点坐标和旋转角度。setColorAt函数的用法与QRadialGradient类似。
最终效果如下图所示:

原文地址: https://www.cveoy.top/t/topic/opRU 著作权归作者所有。请勿转载和采集!