Qt QProgressBar和QSlider qss 樣式


再Qt中控件中QProgress和QSlider的qss樣式是比較難的兩種,這里對這兩種控件的qss樣式進行的記錄:

//進度條整個的樣式

QProgressBar {

border: none;
background-color:#ECECEC;
border-radius:4px;  //圓角
}

//進度條加載的部分
QProgressBar::chunk {
background-color:#38A1F6;
border-radius:4px;
}

 

QSlider中有四個比較重要的輔助控制器(subcontrol),groove表示槽的部分,handle表示滑塊,add-page表示未滑過的槽部分,sub-page表示已滑過的槽部分。

在輔助控制器后面可以設置狀態,horizontal就是QSS生效的QSlider的狀態,注意這里設置的方向一定要和slider對象的方向一致,如果slider是vertical的,QSS設定的是horizontal的,那么是看不到效果的。

水平和垂直的QSlider,這里以水平講解:QSilder:horizontal為水平;vertical為垂直。

QSlider::add-page:Horizontal
{
background-color:red;
}

QSlider::sub-page:Horizontal
{
background-color:blue;
}

//黑色被遮蓋

QSlider::groove:Horizontal
{
background:black;
height:10px;
margin: 4px 4px 4px 4px;
left: 4px;
right: 4px;
}

//滑塊
QSlider::handle:Horizontal
{
width:10px;
background:yellow;

border-image: url(圖片路徑);  //滑塊一般用圖片

}

如果滑塊使用了圖片時,groovy的左右一定要留有一定的空間,設置groove的left和right屬性,防止滑塊滑到兩端時被遮蓋。

 

還有QProgress和QSlider的顏色漸變也比較常見:

QSS有三種顏色漸變:

1、方向漸變

x1,x2,y1,y2后接着標號,在stop中聲明過的值,x1->x2從左到右,y1->y2從上到下

background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(27, 5, 27, 255), stop:0.25 rgba(99, 20, 102, 255), stop:0.5 rgba(154, 30, 158, 255), stop:1 rgba(173, 57, 176, 255));

2、輻射漸變

以圓心為中心漸變。(cx, cy)是(0 ~ 1)范圍的中點,半徑(radius)是(0 ~ 1)范圍圓的半徑,(fx, fy)是漸變的起點

background-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0 rgba(27, 5, 27, 255), stop:0.25 rgba(99, 20, 102, 255), stop:0.5 rgba(154, 30, 158, 255), stop:1 rgba(173, 57, 176, 255));

3、圓錐形漸變

以角度漸變,在(cx, cy)坐標上以初始角度(angle)進行漸變。

background-color: qconicalgradient(cx:0.5, cy:0.5, angle:0, stop:0 rgba(27, 5, 27, 255), stop:0.25 rgba(99, 20, 102, 255), stop:0.5 rgba(154, 30, 158, 255), stop:1 rgba(173, 57, 176, 255));

每個stop就是一個斷點,顏色斷層,格式是:stop:后面是個0~1的double值,再接個顏色


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM