QT QScrollBar 滚动条美化

滚动条区域

滚动条区域是指滚动条中可单独通过qss修改样式的部分

垂直滚动条包括:sub-line、add-line、add-page、sub-page、up-arrow、down-arrow、handle

水平滚动条:sub-line、add-line、add-page、sub-page、left-arrow、right-arrow、handle

区域样式:

垂直滚动条:

整体:

/*滚动条样式,这里测试发现必须设置background:red,否则会出现问题,原因不清楚,如果不需要设置颜色,可以设置transparent*/
QScrollBar:vertical
{
background:red; /*整个滚动条的北京颜色*/
width:30px; /*滚动条整体的宽度*/
/* 滑块活动区域间距,这个间距如果小于add-line和sub-line的高度滚动滑块将会覆盖add-line和sub-line,所以可以通过margin: 0px 0 0px 0;来隐藏滚动条两头区域*/
/* 这里应该系统应该给了默认了值,如果不填写,是正常的滚动条效果 */
margin:30px 0px 30px 0px;
}

handle:

/*滑动区域*/
QScrollBar::handle:vertical
{
    background:rgba(50,50,50,100);
    border-radius:6px;/*圆角*/
    border: 2px solid rgb(8, 8, 8);/*边框*/
    /*这里设置无效,width由QScrollBar:vertical控制,height有窗口大小控制*/
    height:20px;
    width:20px;
    /*通过margin + hover 可以达到鼠标悬停后改变大小(hover中将内间距设小)*/
    margin:0px 5px 0px 5px;
}
QScrollBar::handle:vertical:hover
{
    background:rgba(50,50,50,130);
    border-radius:4px;
    margin:0px 3px 0px 3px;
}

sub-line、add-line:

/*顶部/底部区域*/
QScrollBar::sub-line:vertical
{

    height:30px; 
    background:rgb(0,255,255);
    /*这里的设置主要配合前面的QScrollBar:vertical设置的外间距,如果这里不设置,默认从QScrollBar:vertical的内容区域开始,没有达到之前想要的效果*/
    subcontrol-position:top;
    subcontrol-origin: margin; /*从*/

}
QScrollBar::add-line:vertical
{
    height:30px;
    background:rgb(0,255,255);

    subcontrol-origin: margin;
    subcontrol-position:bottom;
}

未设置subcontrol效果:

设置subcontrol效果:

up-arrow、down-arrow:

/*箭头区域*/
QScrollBar::up-arrow:vertical,QScrollBar::down-arrow:vertical
{
    /*在sub-line中占用的大小*/
    width:7px;
    height:7px;
    /*可以修改为图标*/
    background:red;
    border: 2px solid rgb(22, 12, 68);
}

sub-page、add-page:

/*滑动块上面的区域*/
QScrollBar::sub-page:vertical
{
    background:red;
}

/*滑动块下面的区域*/
QScrollBar::add-page:vertical
{
    background:green;
}

水平滚动条:

样式格式和水平滚动条一致,只是选择器中修改为

QScrollBar:horizontal

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值