日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt修改QSS中的qlineargradient属性,实现颜色渐变

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt修改QSS中的qlineargradient属性,实现颜色渐变 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

程序如下:

運(yùn)行截圖如下:

動態(tài)運(yùn)行圖如下:

原理很簡單,修改QSS中的qlineargradient屬性即可:

源碼如下:

widget.h

#ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected slots:void startRSliderChanged(int value);void startGSliderChanged(int value);void startBSliderChanged(int value);void endRSliderChanged(int value);void endGSliderChanged(int value);void endBSliderChanged(int value);protected:void setWidgetStyle();void initWidget();private:Ui::Widget *ui;QString m_sheetStr;int m_startR;int m_startG;int m_startB;int m_endR;int m_endG;int m_endB; };#endif // WIDGET_H

main.cpp

#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }

widget.cpp

#include "widget.h" #include "ui_widget.h"#include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowTitle("CSDN IT1995");initWidget();m_sheetStr = "";connect(ui->startRHorizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(startRSliderChanged(int)));connect(ui->startGHorizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(startGSliderChanged(int)));connect(ui->startBHorizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(startBSliderChanged(int)));connect(ui->endRHorizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(endRSliderChanged(int)));connect(ui->endGHorizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(endGSliderChanged(int)));connect(ui->endBHorizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(endBSliderChanged(int))); }Widget::~Widget() {delete ui; }void Widget::startRSliderChanged(int value) {m_startR = value;setWidgetStyle(); }void Widget::startGSliderChanged(int value) {m_startG = value;setWidgetStyle(); }void Widget::startBSliderChanged(int value) {m_startB = value;setWidgetStyle(); }void Widget::endRSliderChanged(int value) {m_endR = value;setWidgetStyle(); }void Widget::endGSliderChanged(int value) {m_endG = value;setWidgetStyle(); }void Widget::endBSliderChanged(int value) {m_endB = value;setWidgetStyle(); }void Widget::setWidgetStyle() {QString str = QString("background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(%1, %2, %3, 255), stop:1 rgba(%4, %5, %6, 255));").arg(m_startR).arg(m_startG).arg(m_startB).arg(m_endR).arg(m_endG).arg(m_endB);//qDebug() << str;ui->widget->setStyleSheet(str); }void Widget::initWidget() {QString widgetSheet1 = "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));";QString widgetSheet2 = "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));";QString widgetSheet3 = "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 255, 255, 255), stop:1 rgba(255, 255, 255, 255));";QString widgetSheet4 = "background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:0, y2:1, stop:0 rgba(0, 0, 255, 255), stop:1 rgba(255, 255, 255, 255));";QString widgetSheet5 = "background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:0, y2:1, stop:0 rgba(100, 255, 100, 255), stop:1 rgba(255, 255, 255, 255));";ui->widget_1->setStyleSheet(widgetSheet1);ui->widget_2->setStyleSheet(widgetSheet2);ui->widget_3->setStyleSheet(widgetSheet3);ui->widget_4->setStyleSheet(widgetSheet4);ui->widget_5->setStyleSheet(widgetSheet5);ui->startRHorizontalSlider->setMinimum(0);ui->startGHorizontalSlider->setMinimum(0);ui->startBHorizontalSlider->setMinimum(0);ui->startRHorizontalSlider->setMaximum(255);ui->startGHorizontalSlider->setMaximum(255);ui->startBHorizontalSlider->setMaximum(255);ui->endRHorizontalSlider->setMinimum(0);ui->endGHorizontalSlider->setMinimum(0);ui->endBHorizontalSlider->setMinimum(0);ui->endRHorizontalSlider->setMaximum(255);ui->endGHorizontalSlider->setMaximum(255);ui->endBHorizontalSlider->setMaximum(255);m_startR = 0;m_startG = 0;m_startB = 0;m_endR = 0;m_endG = 0;m_endB = 0; }

?

總結(jié)

以上是生活随笔為你收集整理的Qt修改QSS中的qlineargradient属性,实现颜色渐变的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。