Qt-滚动条样式自定义

文章目录

前言

滚动条是一个复合组件,要定制起来非常麻烦,这里记录一下方便以后查阅。

例子

QScrollBar:vertical
{
    width:8px;
    background:rgb(0,0,0,0%);
    margin:0px,0px,0px,0px;
    padding-top:12px;   /*上预留位置*/
    padding-bottom:12px;    /*下预留位置*/
}
 
/*滚动条中滑块的样式*/
QScrollBar::handle:vertical
{
    width:8px;
    background:rgb(0,0,0,25%);
    border-radius:4px;
    min-height:20px;
}
 
/*鼠标触及滑块样式*/
QScrollBar::handle:vertical:hover
{
    width:9px;
    background:rgb(0,0,0,50%);
    border-radius:4px;
    min-height:20;
}
 
/*设置下箭头*/
QScrollBar::add-line:vertical
{
    height:12px;
    width:10px;
    border-image:url(:/KeyManager/images/icon_pull-down.png);
    subcontrol-position:bottom;
}
 
/*设置上箭头*/
QScrollBar::sub-line:vertical
{
    height:12px;
    width:10px;
    border-image:url(:/KeyManager/images/icon_pull-up.png);
    subcontrol-position:top;
}
 
/*设置下箭头:悬浮状态*/
QScrollBar::add-line:vertical:hover
{
    height:12px;
    width:10px;
    border-image:url(:/KeyManager/images/icon_pull-down2.png);
    subcontrol-position:bottom;
}
 
/*设置上箭头:悬浮状态*/
QScrollBar::sub-line:vertical:hover
{
    height:12px;
    width:10px;
    border-image:url(:/KeyManager/images/icon_pull-up2.png);
    subcontrol-position:top;
}
 
/*当滚动条滚动的时候,上面的部分和下面的部分*/
QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical
{
    background:rgb(0,0,0,10%);
    border-radius:4px;
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
您可以通过使用Qt样式表来修改滚动条样式,并使用图片作为滚动条的背景。以下是一个示例代码,演示如何将图片应用于滚动条: ```cpp // 创建一个QScrollArea QScrollArea* scrollArea = new QScrollArea(this); // 创建一个QWidget作为滚动区域的内容 QWidget* contentWidget = new QWidget(scrollArea); scrollArea->setWidget(contentWidget); // 设置滚动区域的样式表,包括滚动条样式 scrollArea->setStyleSheet("QScrollBar:vertical {" "border: none;" "background-image: url(:/images/scrollbar_bg.png);" "background-position: center;" "background-repeat: no-repeat;" "width: 20px;" "}" "QScrollBar::handle:vertical {" "background-color: gray;" "border-radius: 10px;" "min-height: 20px;" "}" "QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {" "border: none;" "background-color: transparent;" "}" "QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {" "background-color: transparent;" "}"); // 加载滚动条背景图片 QPixmap pixmap(":/images/scrollbar_bg.png"); scrollArea->setBackgroundRole(QPalette::Base); scrollArea->setAutoFillBackground(true); scrollArea->viewport()->setAutoFillBackground(true); scrollArea->viewport()->setBackgroundPixmap(pixmap); // 将滚动区域添加到布局中 layout->addWidget(scrollArea); ``` 在上面的代码中,您需要将`: /images/scrollbar_bg.png`替换为您自己的滚动条背景图片路径。通过修改样式表中的属性,您可以自定义滚动条的外观。 希望这能帮到您!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mrbone11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值