QLinearGradient类提供了一个线性渐变颜色填充。线性渐变由两个端点定义,颜色在这两个点之间以连续的方式变化。
你可以使用setColorAt()函数来定义渐变中的颜色停止点。这个函数接受一个介于0和1之间的数字作为位置参数(其中0表示渐变的起始点,1表示结束点),以及一个QColor对象作为颜色参数。
你还可以使用setStart()和setFinalStop()函数来设置渐变的起始点和结束点。这两个函数接受两个参数,表示点的x和y坐标。
这是一个在窗口上使用线性渐变填充背景的例子:
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QLinearGradient>class MyWidget : public QWidget
{
public:MyWidget(QWidget *parent = 0) : QWidget(parent) {}protected:void paintEvent(QPaintEvent *event) override{QLinearGradient gradient(0, 0, width(), height()); // 创建一个从左上角到右下角的渐变gradient.setColorAt(0, Qt::blue); // 渐变开始为蓝色gradient.setColorAt(1, Qt::red); // 渐变结束为红色QPainter painter(this);painter.setBrush(gradient); // 设置刷子为渐变painter.drawRect(rect()); // 绘制一个矩形填充整个窗口}
};int main(int argc, char *argv[])
{QApplication app(argc, argv);MyWidget widget;widget.show();return app.exec();
}
在这个例子中,我们首先创建了一个从窗口的左上角(0,0)到右下角(width(),height())的线性渐变。然后我们设置了渐变的起始颜色为蓝色,结束颜色为红色。然后我们创建了一个QPainter对象,并将其刷子设置为我们刚才创建的渐变。最后我们绘制了一个矩形,该矩形填充了整个窗口。这样就创建了一个从蓝色渐变到红色的背景。