在通过QSS设置QWidget背景颜色时,可以使用QLinearGradient来实现渐变效果。以下是一个示例代码:
QWidget* widget = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(widget);
widget->setLayout(layout);
// 创建线性渐变对象,并设置起止颜色和渐变方向
QLinearGradient gradient(0, 0, 0, widget->height());
gradient.setColorAt(0, QColor(255, 0, 0));
gradient.setColorAt(1, QColor(0, 0, 255));
// 将渐变作为背景画刷,并设置给QWidget
QBrush brush(gradient);
widget->setStyleSheet(QString("background-color: %1;").arg(brush.color().name()));
// 添加一些控件到QWidget中
QPushButton* button1 = new QPushButton("Button 1");
QPushButton* button2 = new QPushButton("Button 2");
layout->addWidget(button1);
layout->addWidget(button2);
widget->show();
在上述代码中,我们创建了一个QWidget,并通过QVBoxLayout添加两个QPushButton控件。然后我们创建了一个QLinearGradient对象来表示线性渐变,设置了其起止颜色和渐变方向。接着我们将渐变作为背景画刷,通过QSS的方式设置给QWidget的背景颜色。
运行以上代码,会看到QWidget的背景颜色呈现出从红色到蓝色的渐变效果。