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值,再接个颜色

posted @ 2021-02-20 23:02  YDD的铁皮锅  阅读(1732)  评论(0编辑  收藏  举报