简介: QStyle自定义重绘QScrollBar(滚动条)样式。

文章目录

  • 本博文的简述or解决问题?
  • 运行效果:
  • QScrollbar官方教程:
  • QScrollbar属性理解:
  • 系列地址:

本博文的简述or解决问题?

详情: 见简介

编程环境: win10 x64 专业版 1803

编程软件: Qt Creator 4.8.2 (Enterprise)Qt 5.9.8

运行效果:

QScrollbar官方教程:

QScrollBar小部件提供垂直或水平滚动条。

滚动条是一种控件,使用户能够访问比用于显示文档的小部件更大的文档部分。它提供了用户在文档中的当前位置和可见文档数量的可视化指示。滚动条通常配备了其他控件,以支持更精确的导航。Qt以适合每个平台的方式显示滚动条。

如果需要在另一个小部件上提供滚动视图,使用QScrollArea类可能更方便,因为它提供了一个viewport小部件和滚动条。如果您需要为使用QAbstractScrollArea的特定小部件实现类似的功能,QScrollBar非常有用;例如,如果您决定子类化QAbstractItemView。对于使用滑块控件在给定范围内获取值的大多数其他情况,QSlider类可能更适合您的需要。

滚动条通常包括四个单独的控件:滑块、滚动箭头和页面控件。

滑块提供了快速进入文档任何部分的方法,但不支持在大型文档中精确导航。

b.滚动箭头是按钮,可以用来精确地导航到文档中的特定位置。对于连接到文本编辑器的垂直滚动条,它们通常将当前位置向上或向下移动一个“行”,并少量调整滑块的位置。在编辑器和列表框中,“行”可能表示一行文本;在图像查看器中,它可能意味着20个像素。

页面控件是拖动滑块的区域(滚动条的背景)。点击这里将滚动条移动到单击一个“页面”。这个值通常与滑块的长度相同。

每个滚动条都有一个值,该值指示滑块距滚动条起点的距离;这是通过value()和setValue()获得的。此值始终位于为滚动条定义的值范围内,从最小()到包含最大值()。可以使用setMinimum()和setMaximum()设置可接受值的范围。在最小值处,滑块的顶部边缘(垂直滚动条)或左侧边缘(水平滚动条)将位于滚动条的顶部(或左侧)。在最大值处,滑块的底部(或右侧)边缘将位于滚动条的底部(或右侧)末端。

滑块的长度通常与页面步骤的值相关,通常表示滚动视图中显示的文档区域的比例。page step是当用户按下页面向上和向下键时值的变化量,并使用setPageStep()设置。使用游标键对行步骤定义的值进行更小的更改,这个数量由setSingleStep()设置。

注意,使用的值范围与滚动条小部件的实际大小无关。在为范围和页步骤选择值时,不需要考虑这一点。

为滚动条指定的值范围通常与为QSlider指定的值范围不同,因为需要考虑滑块的长度。如果我们有一个100行文档,而我们只能在一个小部件中显示20行,那么我们可能希望构造一个滚动条,其中页面步骤为20,最小值为0,最大值为80。这将为我们提供一个包含五个“页面”的滚动条。

在许多常见情况下,文档长度、滚动条中使用的值范围和页面步骤之间的关系很简单。滚动条的值范围是通过从表示文档长度的值中减去选定的页面步骤来确定的。在这种情况下,下面的公式很有用:文档长度= maximum() - minimum() + pageStep()。

QScrollBar只提供整数范围。注意,尽管QScrollBar处理非常大的数字,但是当前屏幕上的滚动条不能有效地表示超过100,000像素的范围。除此之外,用户很难使用键盘或鼠标来控制滑块,滚动箭头的使用也很有限。

QScrollbar属性理解:

若是需要重绘,查看Qt源码,有如下几个enum QStyle::ControlElement是关于滚动条的元素:

Constant Description
CE_ScrollBarAddPage 增加页(在滑槽)
CE_ScrollBarSubPage 减少页(在滑槽)
CE_ScrollBarSlider 滑块
CE_ScrollBarAddLine 增加按钮
CE_ScrollBarSubLine 减少按钮
CE_ScrollBarFirst 未测出来
CE_ScrollBarLast 未测出来

使用代码显示如下:

系列地址:

QtExamples

欢迎 starfork 这个系列的 QT / DTK 学习,附学习由浅入深的目录。

QStyle自定义重绘QScrollBar相关推荐

  1. `QStyle`自定义重绘`QSlider`控件

    简介: 根据QStyle的继承关系和重绘原理:通过实现一个继承QCommonStyle类的实现,实现自己的自定义控件QSlider控件. 文章目录 本博文的简述or解决问题? 系列博文: 运行效果: ...

  2. QStyle自定义重绘QRubberBand控件

    简介: 根据QStyle的继承关系和重绘原理:通过实现一个继承QCommonStyle类的实现,实现自己的自定义控件QRubberBand控件. 文章目录 本博文的简述or解决问题? 运行效果: QR ...

  3. QStyle/DTK重绘Qt-GUI已有控件,举例QScrollBar

    文章目录 编程环境: 背景: 查看 QScrollBar 的构成,如何查找源码? 解析绘画控件的步骤: 自定义风格完整代码如下: 项目分析: 源码下载: 系列文章: 简 述: 使用 QStyle / ...

  4. DataTable列自定义渲染切页无效重绘

    DataTable列自定义渲染切页 进行DataTable重绘 jsp代码 table = $("#detail_table").DataTable({language: lang ...

  5. 自定义字体样式引入使用方法、文本阴影、边框阴影、(边框)圆角、渐变、理解重绘与回流、渐进增强和优雅降级的区别

    目录 1.文本阴影 text-shadow 2.边框阴影 box-shadow 3.自定义字体样式方法 引入与使用方法举例: 4.(边框)圆角 5.渐变 6.过渡  transition 7.理论知识 ...

  6. android旋转不重绘,Android自定义view仿微信刷新旋转小风车

    本文实例为大家分享了Android仿微信刷新旋转小风车 具体代码,供大家参考,具体内容如下 不太会录像,没办法,智能截图了 不多说了,直接上代码 package com.shipneg.demoysp ...

  7. [DForm]我也来做自定义Winform之另类标题栏重绘

    引用:https://www.cnblogs.com/encoding/p/5603080.html 其他下载:https://github.com/dongger/MomoForm 据说得有楔子 按 ...

  8. ios uiview 如何刷新_UIView的重绘及布局刷新

    本文将简要讨论以下几个问题: 1.UIView的drawRect方法的调用机制及注意点 2.UIView的layoutSubviews.layoutIfNeeded.setNeedsLayout等方法 ...

  9. Android视图重绘,使用invalidate还是requestLayout

    概述 在我们在进行自定义View的相关开发中,当我们更改了当前View的状态,比如大小,位置等,我们需要重新刷新整个界面,保证显示最新的状态.在Android中,让当前的视图重绘有两种方式,inval ...

最新文章

  1. SET QUOTED_IDENTIFIER OFF语句的作用
  2. 在android布局中使用include和merge标签
  3. 矩阵运算最快的库有哪些
  4. TEXTMETRIC 结构详解
  5. #2693. jzptab
  6. 【版本发布】Jeecg-P3 1.0 发布,J2EE微服务框架(插件开发)
  7. Windows下C++将各种资源文件引入exe文件(即无需携带很多res资源包)
  8. 【渝粤教育】国家开放大学2019年春季 45烹饪原料学(1) 参考试题
  9. 8数据提供什么掩膜产品_喜茶、茶百道、书亦、古茗8月外卖热销产品数据全解析...
  10. JQuery插件Fullpage说明文档
  11. 回归方程的拟合优度检验_回归分析的“拟合优度”是什么?
  12. 微商城是什么?如何制作一个微商城
  13. php复杂海报合成,才发现 | 每一步都不该错过的合成海报教程
  14. 【Android】代码中动态设置 drawable 背景
  15. python基础语法(lzy)
  16. Java锁的种类以及辨析(四):可重入锁
  17. 星舰到底要实现什么壮志?火星移民,月球旅行,亦是地球轨道运输
  18. Java Lambda 多级分组
  19. js数据结构- 双向链表
  20. 985学计算机的博士生好找工作吗,985博士去“专科”当老师,月薪6000挤破门槛,本科生该何去何从...

热门文章

  1. javaweb(八)文件上传
  2. 基于layui框架的登录验证
  3. python加绝对值_python中取绝对值简单方法总结
  4. 在Vue中引入fullcalendar制作课程表
  5. C++ Lamda表达式
  6. 计算机电源计划为节能模式,Win10下电源模式会自动更改为“节能”模式的解决方法...
  7. Python生成器函数
  8. Photoshop学习(二十七):利用反差大的单色通道进行选择
  9. 如何阅读一本书 节选
  10. mysql连接语句_mysql 连接语句