在看文档的时候测试了一下demo,然后发现了一个有意思的东西,自定义滑块为带边框的圆形。
在设置的时候边框总是和预期的有点误差,后来发现了这样一个计算方式可以画一个比较标准的圆。(ABCDEF在下方代码块内)
滑块的高=A+C+D = 2*E
滑块的宽=B+2*F =2*E
按照这个写出的滑块就是一个圆形,不然就会有点椭圆。不知道是不是我的这个qt版本的问题,欢迎留言
QSlider
{
background-color: rgb(148, 180, 255);
}
QSlider::groove:horizontal
{
height: 10px; /*A*/
background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #c4c4c4);
}
QSlider::handle:horizontal
{
background-color: rgb(81, 75, 255);
width:20px; /*B*/
margin-top:-15px ; /*C*/
margin-bottom: -15px; /*D*/
margin-left:0;
margin-right: 0;
border-radius:20px; /*E*/
border: 10px ; /*F*/
border-style:solid;
border-color:#ffffff;
/*border-image: url(:/rp2_03.jpg);*/
}
QSlider:handle:hover
{
background-color: rgb(154, 87, 255);
}
QSlider:handle:pressed
{
background-color: rgb(245, 130, 255);
}
QSlider::sub-page:horizontal
{
background: rgb(0, 170, 127);
border-radius:5px;
}
QSlider::add-page:horizontal
{
background: rgb(0, 0, 127);
border-radius:5px;
}