目錄
0.簡介
1)qtDesigner中
2)實際執行
1.功能詳述
3.舉一反三的樣式
0.簡介
QLinearGradient
?是 Qt 框架中的一個類,用于定義線性漸變效果(通過樣式表設置)。它可以用來填充形狀、背景或其他圖形元素,創建從一個顏色到另一個顏色的平滑過渡效果。
先看下實現效果(我用了一個label控件承接,一個從淺灰到深灰的漸變,帶50的圓角)
1)qtDesigner中
2)實際執行
想要彩色?滿足你
1.功能詳述
1)首先我們看下用樣式是如何設置的(以下均已彩色圖的顏色為準)
ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.5 green, stop:1 blue);""border-radius:50px;");
重點就是這一句代碼,設置樣式。
通過給label設置一個背景顏色,再加一個border-radius的圓角即可實現,重點是qlineargradient的參數,我們來分析下:
qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.5 green, stop:1 blue)
別看參數這么多,分組看就好了,一共有5個組:
a)起始點坐標(x1,y1)
b)結束點坐標(x2,y2)
c)起始點顏色和開始點(stop:0.0 red)
d)中間段顏色和中間點(stop:0.5 green)
e)結束點顏色和結束點(stop:1 blue)
(參考圖)
參數 | 含義 |
qlineargradient(...) | 設置背景為線性漸變 |
x1:1, y1:0(x1,y1要一起看) | 漸變起點的坐標(看上面的參考圖中的紅色坐標,僅看四個點坐標) 也就是顏色從(1,0)開始,也就是右上角
|
x2:0, y2:1(x2,y2要一起看) | 漸變終點的坐標(看上面的參考圖的紅色坐標) 也就是顏色到(0,1)結束,也就是左下角
|
stop:0.0 red | 在漸變線的起點(位置 0.0)設置顏色為紅色,參考上圖的橙色數字位置 |
stop:0.5 green | 在漸變線的中間點(位置 0.5)設置顏色為綠色,參考上圖的橙色數字位置 |
stop:1 blue | 在漸變線的終點(位置 1.0)設置顏色為藍色,參考上圖的橙色數字位置 |
也就是先看起點終點,再看顏色。
如上述代碼樣式可簡述為:從右上到左下,分別是紅、綠、藍三個顏色。
3.舉一反三的樣式
1)如果要調換開始和結束的顏色(紅藍調換),有兩種方式:
? ? ? ? i)調換起始點:
? ? ? ? (x1,y1),原(1,0)變為(0,1)+ (x2,y2),原(0,1)變為(1,0)
? ? ? ? ii)調換起點(red)和終點(blue)的顏色
2)我想讓紅色少一點
第二段stop的值少一點,意思是綠色的中心點是0.2
// ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.5 green, stop:1 blue);"ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.2 green, stop:1 blue);""border-radius:50px;");
3)如果我只想要兩個顏色,不想要中間的綠色了
去掉第二段stop參數(, stop:0.5 green)即可
// ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.5 green, stop:1 blue);"ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red,stop:1 blue);""border-radius:50px;");
大家可自行發揮想象力,可以創造出很多樣式
--END--