一、概述

在Designer输入部件中Horizontal Scroll Bar和Vertical Scroll Bar都是滚动条部件,实际上这2个部件对应同一个类QScrollBar。在需要从QAbstractItemView派生子类提供滚动条时,QScrollBar非常适合,但如果需要在另一个部件上提供滚动视图,不建议直接使用QScrollBar,而是使用QScrollArea类更方便,因为它同时提供了一个视口部件和滚动条部件。对于大多数使用滑块控件获取给定范围内的值的其他情况,使用QSlider类更适合。

QScrollBar是从QAbstractSlider类派生的,本身除了构造方法外,并没有特殊属性和方法。因此本部分介绍的属性、非构造方法、信号、槽方法实际上都是QAbstractSlider的。

二、滚动条的部件组成

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

  • 滑块提供了快速转到文档任何部分的方法,但不支持在大型文档中进行精确导航
  • 滚动箭头,滚动箭头是按钮,可用于精确导航到文档中的特定位置。对于连接到文本编辑器的垂直滚动条,这些滚动条通常将当前位置向上或向下移动一行,并将滑块的位置调整少量。在编辑器和列表框中,“行”可能意味着一行文本;在图像查看器中,它可能意味着20像素。
  • 页面控件是拖动滑块的区域(滚动条的背景)。单击此处可将滚动条向单击方向移动一页。此值通常与滑块的长度相同。

三、滚动条的重要属性

  • value属性:每个滚动条都有一个值,该值指示滑块距滚动条起点的距离,该值通过value()获得,并通过setValue()设置,value的值在minimum和maximum之间,可以使用setMinimum()和setMaximum()调整最小值和最大值
  • singleStep属性:表示单步移动的距离,单步移动是指通过单次点击滚动箭头或按压移动光标键后滑块移动的距离
  • pageStep属性:表示移动一页的距离,当按压上下翻页键或在滚动条上下点击鼠标移动的距离
  • tracking属性: 当设置为True时,在拖拽滑块时就会发出valueChanged()信号,否则只有当终止拖拽释放鼠标时才发射该信号
  • sliderPosition属性:滑块当前位置,如果tracking属性为True,则其值与value属性值相等
  • orientation属性:表示是水平滚动条还是竖直滚动条
  • invertedAppearance属性:此属性控制滑块是否反转显示其值。如果为False(默认值),则最小值和最大值将显示在部件的经典位置(如最小值在顶部或左边)。如果该值为真,则最小值和最大值将显示在它们的相反位置
  • invertedControls属性:此属性保留滑块是否反转响应滚动事件和键盘事件。如果此属性为False,则滚动鼠标滚轮“向上”并使用诸如“PgUp”之类的键将滑块的值朝最大值增加。否则,按“PgUp”会将值向滑块的最小值靠近
  • sliderDown属性:此属性用于确认滚动条滑块是否被按住

四、重要的方法、信号和槽方法

  • actionTriggered(int action):这个信号是滑块动作触发,用于告知是进行了单步增或减移动、按页增或减移动、移动到最大值、移动到最小值、或移动过程中,发出信号时,滑块位置已根据操作进行了调整,但该值尚未传播(valueChanged()信号尚未发出),并且视觉显示尚未更新。因此,在连接到该信号的插槽中,可以根据动作和滑块的值,通过自己调用setSliderPosition()来安全地调整任何动作
  • triggerAction(SliderAction action)方法:这个一个方法,触发一个滑块移动事件,类似于模拟一个滑块移动操作,会发射actionTriggered()信号
  • setValue(int):槽方法,调整滚动条的值
  • sliderMoved(int value):此信号在滚动条滑块被按住且滚动条进行移动时发出,一般是拖拽滚动条时发出
  • sliderPressed():此信号在滚动条被鼠标按住,或者程序执行代码setSliderDown(True)时发出
  • sliderReleased():此信号在滚动条松开鼠标按住,或者程序执行代码setSliderDown(False)时发出
  • valueChanged(int value):此信号在滚动条值变更时发出

跟老猿学Python、学5G!

PyQt(Python+Qt)学习随笔:QScrollBar以及QAbstractSlider滚动条部件功能详解的更多相关文章

  1. PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的 ...

  2. PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性不能覆盖写的问题

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dra ...

  3. PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性

    老猿Python博文目录 老猿Python博客地址 一.属性的作用 dragDropOverwriteMode属性用于控制视图的拖放行为,如果其值为True,则视图中选定的数据将在拖拽数据放下时被覆盖 ...

  4. PyQt(Python+Qt)学习随笔:视图中的dragDropMode属性对dragEnabled和acceptDrops属性的影响

    老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系&g ...

  5. PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系

    老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑>中,老猿觉得dragE ...

  6. PyQt(Python+Qt)学习随笔:视图中的拖放操作注意事项

    老猿Python博文目录 老猿Python博客地址 在通过PyQt构建的图形界面中进行拖放,要成功进行拖放需要注意: 视图相关属性需要支持拖放,具体相关属性请参考<PyQt(Python+Qt) ...

  7. PyQt(Python+Qt)学习随笔:Qt Designer中部件的autoFillBackground属性

    autoFillBackground属性可以确认部件背景是否自动填充,如果自动填充,Qt会在调用Paint事件之前填充部件的背景.使用的颜色由部件调色板中的QPalette.window 角色定义(关 ...

  8. PyQt(Python+Qt)学习随笔:Qt Designer中部件的accessibleDescription和accessibleName辅助阅读属性

    accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt D ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中部件的toolTip、toolTipDuration、statusTip、whatsThis属性

    toolTip属性 toolTip属性设置部件的toolTip提示信息,toolTip提示信息在鼠标放到控件上会浮动出一个小框显示提示信息.默认情况下,仅显示活动窗口子部件的toolTip,可以通过在 ...

随机推荐

  1. C++ 设计模式 1:概述

    1 设计模式概述 1.1 定义 设计模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案. 1.2 设计模式的种类 GoF 提出的设计模式有 23 个,包括: 创建型模式:如何创建对象 ...

  2. 二级Parser应用教程

    01 应用背景 Ubidots是一个物联网云平台,通过设备友好的API(可通过HTTP / MQTT / TCP / UDP协议访问)简单安全地将硬件和数字输入连接到Ubidots Cloud. 它可 ...

  3. PHP-Parse 简介以及在 Hyperf 中的应用

    介绍 PHP-Parse 是分析 PHP 代码生成 AST 的库,分析出可读性很高的对象数据结构,方便后续的更新和遍历. PHP-Parse 的主要作用是修改原有代码(比如插入自定义的代码片段),生成 ...

  4. subString引起的index out of range

    特别注意!!!低级坑 subString(begin,end)   subList()均存在这个问题. 当end>String.size(),则index out of range!!!

  5. ceph单机多mon的实现

    ceph默认情况下是以主机名来作为mon的识别的,所以这个情况下用部署工具是无法创建多个mon的,这个地方使用手动的方式可以很方便的创建多个mon 1.创建mon的数据存储目录 mkdir /var/ ...

  6. 使用ViewPager实现卡片叠加效果

    使用ViewPager实现卡片叠加效果 背景 在开发项目时,需要对 App的某个资源模块进行界面重构,其中在资源展示部分中新的交互以卡片叠加的效果替代了原来的资源组织树门禁展示方式.在新的资源展示方式 ...

  7. elementui checkbox复选框实现层级联动

    使用elementui 实现复选框的层级联动,可能我的表述不准确,先上一个效果图. 实际开发中可能遇到这样的场景,当选择高一层级的复选框时它包含的低级的复选框就不需要再勾选,需要默认选中并且禁止选用. ...

  8. 历时两年零三个月,从刚毕业的外包到现在的阿里P7offer,我只做了这几件事

    前言 最近,金九银十在即,很多人都在准备面试,特别给大家总结了 Java 程序员面试必备题,这份面试清单是我从 去年开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘我在 Java 技术栈中的技 ...

  9. 分享用MathType编辑字母与数学公式的技巧

    利用几何画板在Word文档中画好几何图形后,接着需要编辑字母与数学公式,这时仅依靠Word自带的公式编辑器,会发现有很多公式不能编辑,所以应该采用专业的公式编辑器MathType,下面就一起来学习用M ...

  10. FL Studio中的Fruity slicer采样器功能介绍

    本章节采用图文结合的方式来给大家介绍电音编曲软件FL Studio中的Fruity Slicer采样器的功能,感兴趣的朋友可一起来交流哦. Fruity slicer(水果切片器)插件是FL Stud ...