PyQt(Python+Qt)学习随笔:QScrollBar以及QAbstractSlider滚动条部件功能详解
一、概述
在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滚动条部件功能详解的更多相关文章
- PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的 ...
- PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性不能覆盖写的问题
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dra ...
- PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性
老猿Python博文目录 老猿Python博客地址 一.属性的作用 dragDropOverwriteMode属性用于控制视图的拖放行为,如果其值为True,则视图中选定的数据将在拖拽数据放下时被覆盖 ...
- PyQt(Python+Qt)学习随笔:视图中的dragDropMode属性对dragEnabled和acceptDrops属性的影响
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系&g ...
- PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑>中,老猿觉得dragE ...
- PyQt(Python+Qt)学习随笔:视图中的拖放操作注意事项
老猿Python博文目录 老猿Python博客地址 在通过PyQt构建的图形界面中进行拖放,要成功进行拖放需要注意: 视图相关属性需要支持拖放,具体相关属性请参考<PyQt(Python+Qt) ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的autoFillBackground属性
autoFillBackground属性可以确认部件背景是否自动填充,如果自动填充,Qt会在调用Paint事件之前填充部件的背景.使用的颜色由部件调色板中的QPalette.window 角色定义(关 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的accessibleDescription和accessibleName辅助阅读属性
accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt D ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的toolTip、toolTipDuration、statusTip、whatsThis属性
toolTip属性 toolTip属性设置部件的toolTip提示信息,toolTip提示信息在鼠标放到控件上会浮动出一个小框显示提示信息.默认情况下,仅显示活动窗口子部件的toolTip,可以通过在 ...
随机推荐
- nginx安装 linux
1.安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.创建一个文件夹 cd /usr/local m ...
- HTTP 抓包 ---复习一下
1.connection 字段 2.accept 字段 3.user-agent 字段 4.host字段 等字段需要注意: HTTP事务的延时主要有以下:1).解析时延 DNS解析与DNS缓存 客 ...
- linux tcp Nagle算法,TCP_NODELAY和TCP_CORK 转载
转载自: http://www.cnhalo.net/2016/08/13/linux-tcp-nagle-cork/ http://abcdxyzk.github.io/blog/2018/07/0 ...
- C++如何实现多态
1. 什么是多态多态是C++中的一个重要的基础,面向对象编程语言中,接口的多种不同的实现方式即为多态.2. 多态带来的好处多态带来两个明显的好处:一是不用记大量的函数名了,二是它会依据调用时的 ...
- 分布式监控系统之Zabbix基础
1.为什么要使用监控系统? 我们知道一个系统不管怎么讲它都会出故障,我们为了保证线上业务的最大化的可用性,通常我们要给关键业务做高可用:做高可用的目的是为了让故障发生时,能够有一个备用的解决方案,将故 ...
- ceph卡在active+remapped状态
最近看到了有人的环境出现了出现了卡在active+remapped状态,并且卡住不动的状态,从pg的状态去看,这个pg值分配了主的pg,没有分配到副本的osd,集群的其他设置一切正常 这个从网上搜寻到 ...
- 【转】CentOS7 64位安装mysql教程
从最新版本的linux系统开始,默认的是 Mariadb而不是mysql!这里依旧以mysql为例进行展示 1.先检查系统是否装有mysql rpm -qa | grep mysql 这里返回空值,说 ...
- python爬虫分析报告
在python课上布置的作业,第一次进行爬虫,走了很多弯路,也学习到了很多知识,借此记录. 1. 获取学堂在线合作院校页面 要求: 爬取学堂在线的计算机类课程页面内容. 要求将课程名称.老师.所属学校 ...
- JavaScript复习大纲
1. HTML.CSS和JavaScript各自在网页设计中的作用. 1.HTML生成结构. 2.CSS样式美化. 3.JavaScript的作用: (1) 操作HTML及CSS,让网页具有动态行为. ...
- 纯干货分享!2020阿里java岗笔试面试题总结(附答案)
前言 2020金九银十马上结束,现为大家整理了这次金九银十面试阿里的面试题总结,都是我从朋友那拿到的面试真题,话不多说,满满的干货分享给大家! int a=10是原子操作吗? 是的. 注意点: i+ ...

