再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值,再接個顏色