目录

1.滚动条的构成

2.对A区域(滚动条的整体样式)进行设置

3.对C区域(滑块)进行设置

4.对D区域(向下箭头的背景)进行设置

5.对B区域(向上的箭头的背景)进行设置

6.对B区域向上箭头样式进行设置

7.对D区域向下箭头样式进行设置

8.设置向上箭头按下时的样式

9.设置向下箭头按下时的样式

10.设置向下箭头与滑块之间的区域

11.设置向上箭头与滑块之间的区域

12.设置鼠标悬停在滑块上方时滑块的样式

13.设置上下箭头的背景图片


1.滚动条的构成

注意事项

(1) QScrollBar可以使用handle、add-line、sub-line等子控件进行样式设置。但是只要有一个属性或子控件是自定义的,那么所有其他属性或子控件也必须是自定义的

(2) 有一些常见的CSS属性用在此控件上是不会生效的,而且会导致异常。比如说你尝试指定一个QTextBrowser(高度设为240px)的垂直滚动条的高度:height: 80px; 但这不会生效,反而会导致滚动条不显示。

(3) 我对很多属性进行了测试,文中会详细说明这些属性的作用,并指出了一些不建议使用的属性,因为即使设置了也不会起作用,或者是导致异常,请注意这些说明。

2.对A区域(滚动条的整体样式)进行设置

QScrollBar:vertical {border: 2px solid grey;/*设置整个滚动条区域的边框样式*/background: rgb(0,0,0);/*设置整个滚动条区域的背景颜色*/width: 30px; /*设置整个滚动条区域的宽度*/margin: 30px 0 30px 0;/*依次设置整个滚动条区域到上、右、下、左四个方向的边距*/
}

这里比较难理解的是margin的四个值,这4个值,依次设置整个滚动条区域到上、右、下、左四个方向的边距。margin: 30px 0 30px 0;  第1个30表示M的高度,第2个30表示的是N的高度,说得更好理解一点,就是C区域(滑块)到整个滚动条上下两条边之间的空隙的大小。

另外在对A区域进行设置时,我也尝试了下面的熟悉设置,下面是测试结果:

min-width: 30px; 有效,但不建议使用,直接用width即可
max-width: 15px;有效,但不建议使用,直接用width即可
height: 80px;无效,设置后会导致滚动条不显示,不要使用
max-height: 100px; 有效,但不建议使用
min-height: 50px; 可能有效,当整个控件的高度大于50px的时候,滚动条的高度肯定也是大于50px的,不受最小高度的影响,不建议使用

对于垂直滚动条的高度而言,按理说应该是自适应的,而自适应的功能在Qt内部的代码已经实现了,没必要再横插一脚,容易弄巧成拙。

3.对C区域(滑块)进行设置

QScrollBar::handle:vertical {background: yellow;
}

下面这几个属性设置了没有效果,网上查阅资料得到的结论是Qt自带的滚动条滑块的高度和宽度是自适应的,无法通过样式表修改,只能自己通过代码实现。

height: 20px;
   min-height: 20px;
   width: 20px;
   max-height: 20px;

当然这里滑块的背景除了指定颜色外,应该也能用背景图片来设置背景,我没有试,就不细说了。

4.对D区域(向下箭头的背景)进行设置

QScrollBar::add-line:vertical {border: 2px solid red;/*设置向下箭头的边框*/background: #32CC99;/*设置向下箭头区域的背景*/height: 15px;/*设置向下箭头区域的高度*/subcontrol-position: bottom;/*父元素中的子控件的原始矩形(4个可选值:margin\border\padding\content)。如果未指定此属性,则默认为padding。*/subcontrol-origin: margin;/*子控件在subcontrol-origin指定的原始矩形内的对齐方式。如果未指定此属性,则默认为依赖子控件的值。*/
}

对于下面这两个值,不要去修改:

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

改成其它值,向下箭头区域可能就不显示了。

5.对B区域(向上的箭头的背景)进行设置

QScrollBar::sub-line:vertical {border: 2px solid red;background: #32CC99;height: 25px;subcontrol-position: top;subcontrol-origin: margin;
}

6.对B区域向上箭头样式进行设置

注意:默认情况下箭头就是一个矩形,而不是三角形,如果想要变成三角形,需要贴图

QScrollBar::up-arrow:vertical{border: 2px solid red;/*箭头边框*/width: 5px;/*箭头宽度*/height: 5px;/*箭头高度*/background: white;/*箭头背景色*/
}

7.对D区域向下箭头样式进行设置

注意:默认情况下箭头就是一个矩形,而不是三角形,如果想要变成三角形,需要贴图

QScrollBar::down-arrow:vertical {border: 2px solid red;width: 5px;height: 5px;background: white;
}

8.设置向上箭头按下时的样式

按下时箭头边框变成蓝色

QScrollBar::up-arrow:vertical:pressed
{border: 2px solid blue;/*箭头边框*/width: 5px;/*箭头宽度*/height: 5px;/*箭头高度*/background: white;/*箭头背景色*/
}

9.设置向下箭头按下时的样式

按下时箭头边框变成蓝色

QScrollBar::down-arrow:vertical:pressed
{border: 2px solid blue;/*箭头边框*/width: 5px;/*箭头宽度*/height: 5px;/*箭头高度*/background: white;/*箭头背景色*/
}

10.设置向下箭头与滑块之间的区域

QScrollBar::add-page:vertical
{background-color:rgb(255, 0, 0);
}

11.设置向上箭头与滑块之间的区域

QScrollBar::sub-page:vertical
{background-color:rgb(0, 255, 0);
}

12.设置鼠标悬停在滑块上方时滑块的样式

悬停时,滑块为橙色

QScrollBar::handle:vertical:hover
{background-color:#ffaa00;border-radius:5px;
}

13.设置上下箭头的背景图片

注意:在测试的过程中,发现background不能没有,否则箭头图片不显示。

QScrollBar::up-arrow:vertical{border: 2px solid red;/*箭头边框*/width: 5px;/*箭头宽度*/height: 5px;/*箭头高度*/background: white;/*箭头背景色*/border-image: url(":/QtWidgetsApplication11/up_arrow.png");
}QScrollBar::down-arrow:vertical {border: 2px solid red;width: 5px;height: 5px;background: white;border-image: url(":/QtWidgetsApplication11/down_arrow.png");
}

如果需要箭头的背景图片的可以给我留言,我可以发给你们

Roson讲Qt#14 设置滚动条样式相关推荐

  1. CSS设置滚动条样式

    今天在写一个项目的时候遇到了,这样一个小难点 要设置一个类似于页面的滚动条,查阅了相关文档之后,我会了 一.我们可以使用overflow属性设置是否出现滚动条overflow:scroll /* x ...

  2. 设置滚动条样式vue + div + el-table

    修改滚动条样式 展示多个表格,溢出隐藏,显示滚动条,设置滚动条样式,像下面这样: <div class="tableList" id="tableListStyle ...

  3. 如何设置滚动条样式?

    /*****设置滚动条样式*****/ ::-webkit-scrollbar { width: 12px;} /* 滚动槽 */ ::-webkit-scrollbar-track {-webkit ...

  4. vue 设置滚动条样式

    vue 设置滚动条样式 //在index文件中/* @charset "utf-8"; */::-webkit-scrollbar {width: 5px;}/*定义滚动条轨道 内 ...

  5. css设置滚动条、并设置滚动条样式

    1.overflow设置滚动条 /* 设置y轴滚动条 */ overflow-y:auto /* 设置x轴滚动条 */ overflow-x:auto 2.设置滚动条样式 ::-webkit-scro ...

  6. vue全局修改设置滚动条样式

    ::-webkit-scrollbar{ /*滚动条整体样式*/width: 10px; /*高宽分别对应横竖滚动条的尺寸*/height: 1px; } ::-webkit-scrollbar-th ...

  7. android设置滚动条样式,Android零基础入门|滚动视图ScrollView-设置滚动条样式

    前面几期学习了ProgressBar系列组件.ViewAnimator系列组件.Picker系列组件和时间日期系列组件,接下来几期继续来学习常见的其他组件. 一.ScrollView概述 从前面的学习 ...

  8. jquery设置滚动条样式

    HTML结构 下面是该滚动条插件工作所必须的HTML结构: ... content here ... CSS样式 在HTML 中引入nanoscroller.css文件. 你必须为容器指定一个宽度和高 ...

  9. CSS_如何设置滚动条样式_超出左右滚动

    CSS-界面滚动时不显示滚动条 设置滚动条的样式: div::-webkit-scrollbar {//width: 0;height: 0; } 关于::-webkit-scrollbar ::-w ...

最新文章

  1. Android学习笔记(二三): 多页显示-Flipper的使用
  2. php常量 变量,php语言的变量和常量
  3. Java中实现DES加解密的一个类
  4. 笔记:编写高质量代码 改善Java程序的151个建议
  5. jQuery知识点笔记-常用方法
  6. 架构之美阅读笔记之一
  7. 传递数组到 Shader
  8. html 物流状态,使用css实现物流进度的样式的实例代码
  9. 使用JMeter测试WebSocket接口
  10. linux moxa 多串口卡_MOXA多串口卡C32030TCPU模块双RISC-based处理器架构大幅提升I/O数据传输的效能达到8口或以上...
  11. 百度ueditor修改默认字体和大小
  12. bzoj 1800: [Ahoi2009]fly 飞行棋
  13. Android获得全局进程信息以及进程使用的内存情况
  14. 80x86是不是低级语言_【单选题】2、 以下程序设计语言是低级语言的是()。 A. FORTRAN语言 B. JAVA语言 C. Visual Basic 语言 D. 80X86汇编语言...
  15. FHIR标准和国际基于FHIR的互联互通实践(1):如何定义互联互通?
  16. 计算机开机跳过硬盘检查,怎样取消电脑开机磁盘自检 关闭硬盘自检方法全析...
  17. 开源接口测试平台BTest
  18. CAN总线学习笔记 | CAN盒测试STM32的CAN中断接收
  19. 使用BasicExcel操作Excel
  20. 有没有测试ipad的软件,4个用于测试iPhone iPad应用程序的iOS模拟器 | MOS86

热门文章

  1. 一个关于短信黑名单的想法
  2. MBR、GPT和FAT、EXT2
  3. 【工具篇】Unity内置渲染管线和URP以及HDRP轮廓外发光边缘光高亮显示演示
  4. cropperjs图片上传裁剪插件
  5. python创建文件和文件夹
  6. CSS之右边竖条的实现方法
  7. 微信小程序下载网络图片保存到本地
  8. 达梦数据库基础知识(四)管理DM线程
  9. 锤子科技一款聊天软件——子弹短信
  10. 【效率特工队】怎样完成俄语图片识别文字、韩语文字识别、日语文字识别,截图即识别出文字(无需安装)