当前位置: 首页 > article >正文

Qt扫盲-QScrollBar理论总结

QScrollBar理论总结

    • 1. 简述
    • 2. 滚动条组成
    • 3. 常用设置
    • 5. 信号
    • 6. 键盘功能

1. 简述

QScrollBar其实就是一个滚动条控件,它使用户能够访问大于用于显示文档的小组件的文档部分。它提供了用户在文档中的当前位置以及可见的文档量的可视指示。滚动条通常配备其他控件,以实现更准确的导航。Qt以适合每个平台的方式显示滚动条。滚动条的本质就是因为需要显示的内容已经超出窗口的大小,就需要用这个滚动条来控制和指示当前的位置。
在这里插入图片描述
如果需要在另一个小部件上提供滚动视图,使用 QScrollArea 类可能更方便,因为它提供了一个视口小部件和滚动条。
滚动条通过构造函数的时候来设置其水平还是垂直方向的滚动条。

2. 滚动条组成

滚动条通常包括四个单独的控件:滑块、滚动箭头和页面控件。
在这里插入图片描述
下面是各个组件的介绍

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

3. 常用设置

每个滚动条都有一个值,指示滑块与滚动条开头的距离;这是用 value() 获得的,并使用 setValue() 设置的。此值始终位于为滚动条定义的值范围内,从最小值() 到最大值(包括最大值)。可接受的值范围可以使用 setMinimum() 和 setMaximum() 进行设置。在最小值下,滑块的上边缘(对于垂直滚动条)或左边缘(对于水平滚动条)将位于滚动条的顶端(或左端)。在最大值时,滑块的底部(或右)边缘将位于滚动条的底部(或右端)。

滑块的长度通常与页面步长的值相关,通常表示滚动视图中显示的文档区域的比例。页面步长是用户按向上翻页和向下翻页键时值更改的数量,并使用 setPageStep() 进行设置。对行步长定义的值的较小更改是使用光标键进行的,并且此数量是使用 setSingleStep() 设置的。

请注意,使用的值范围与滚动条构件的实际大小无关。在为范围和页面步长选择值时,无需考虑这一点。
为滚动条指定的值范围通常与 QScrollBar 指定的值范围不同,因为需要考虑滑块的长度。如果我们有一个 100 行的文档,并且我们只能在一个小部件中显示 20 行,我们可能希望构建一个页面步长为 20、最小值为 0、最大值为 80 的滚动条。这将给我们一个带有五个“页面”的滚动条。

在这里插入图片描述

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

QScrollBar 仅提供整数值设定范围。尽管 QScrollBar 处理非常大的数字,但当前屏幕上的滚动条无法有效地表示大约 100,000 像素以上的范围。除此之外,用户很难使用键盘或鼠标控制滑块,并且滚动箭头的用途有限。

5. 信号

这些信号和其父类的基本完全一致的。

信号名含义
valueChanged()当 value 属性改变时. 改变可以是编程实现、也可以是用户交互时改变.
sliderPressed()就是Silder滑块被按下,准备去拖动时
sliderMoved()滑块拖动时
sliderReleased()用户松开滑块的时候
actionTriggered()slider 的 action 触发时
rangeChanged()就是 minimum 和 maximum 发生改变时候触发

actionTriggered() 信号指的是 触发滑块操作时会发出此信号。Action 包括 SliderSingleStepAdd、SliderSingleStepSub、SliderPageStepAdd、SliderPageStepSub、SliderToMinimum、SliderToMaximum 和 SliderMove发生调用的时候。
发出信号时,滑块位置已根据动作进行调整,但该值尚未传播(表示尚未发出 valueChanged() 信号),并且可视化显示尚未更新。因此,在连接到此信号的插槽中,您可以通过根据动作和滑块的值自己调用 setSliderPosition() 来安全地调整任何动作。

6. 键盘功能

QScrollBar可以使用 Tab鼠标滚轮键盘 交互。
一个 page 其实可以看成是 多个 step 的集合。这样就很方便的翻页啦,毕竟一个一个移动肯定要慢些,page可以粗调,step精调。

键盘名功能
Left/Right水平滑动条移动一个 step
Up/Down垂直滑动条移动一个 step
PageUp向上移动一个page 页.
PageDown向下移动一个page 页.
Home移动到 最开始 (mininum).
End移动到 最后面 (maximum).

这个大概了解一下 常用设置的 页面组成构成其实就够了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/300249.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

Qt扫盲-QScrollBar理论总结

QScrollBar理论总结1. 简述2. 滚动条组成3. 常用设置5. 信号6. 键盘功能1. 简述 QScrollBar其实就是一个滚动条控件,它使用户能够访问大于用于显示文档的小组件的文档部分。它提供了用户在文档中的当前位置以及可见的文档量的可视指示。滚动条通常配备其他控件&…...

两位前阿里 P10 的成长经历的启发

目录 汤峥嵘的成长经历 关键节点一:到美国留学 关键节点二:美国工作十年 关键节点三:八年阿里时光 关键节点四:加入途牛和 VIPABC 毕玄的成长经历 关键节点一:小公司里脱颖而出 关键节点二:加入淘宝…...

gitlab限制push size的解决办法

在单位的gitlab上新建仓库opengl,然后clone github代码后更新到自己的gitlab上: git remote set-url --add origin gitgit.xxx.com:/opengl.git git remote set-url --delete origin https://github.com/opengl/opengl.git git push origin master正常来…...

公众号私域流量运营的三种手段

在当前的市场环境下,建立私域流量是比较明智的选择,这是为什么呢?这是因为当前的用户市场,同行之间竞争是比较激烈的,企业稍不注意就可能流失用户,为了更好的留存用户以及开展用户运营,企业最好…...

Java优雅的记录日志:log4j实战篇

写在前面 项目开发中,记录错误日志有以下好处: 方便调试 便于发现系统运行过程中的错误 存储业务数据,便于后期分析 在java中,记录日志有很多种方式: 自己实现:自己写类,将日志数据&#xf…...

西妥昔单抗丨艾美捷西妥昔单抗Cetuximab方案

西妥昔单抗Cetuximab是针对人表皮生长因子受体的一种单克隆抗体,主要作用就是与表皮生长因子受体结合,阻断表皮生长因子受体与其它配体的结合而达到抗肿瘤的目的。各种恶性肿瘤细胞,例如直肠癌细胞、胃癌细胞,表面都高表达表皮生长…...

hc32和stm32 can波特率设置

前言 笔者在调试一款新的mcu的can通信时候,最麻烦的是波特率设置。由于没有弄明白其计算原理,经常出错,且不同的波特率有不同的采样点的要求。浪费了不少时间。这次一次搞明白can波特率的计算公式。 can波特率计算 在ISO 11898-1-2015 标准…...

pytorch 的自动求导功能简介

pytorch 的自动求导功能简介一、反向传播算法简介二、pytorch 的自动求导功能1. 前言2. 我们需要自动求导机制做什么3. 一个简单的例子4. 模型训练过程中使用自动求导(略)5. 关闭和打开自动求导6. 自动求导和原地替换操作7. 自动求导的性能分析器(略)8. 高阶话题:关…...

Rock派(基于瑞芯微RK3308B)开发记录-上篇

本文作者:Linux兵工厂,一个嵌入式软件领域的攻城狮。欢迎指教公一众-号:Linux兵工厂,获取硬核Linux资料和文章 前言 根据项目需求并且经过各方面评估最终选择了这款Rock Pi(Rock派)系列中的Rock Pi S产品。正式它的各方面的特性…...

【图像增强】暗通道图像去雾【含GUI Matlab源码 740期】

⛄一、简介 1 暗通道先验图像去雾方法 1.1 光线透射率模型 光在传播中由于散射使得从光源发出的辐射只有部分能到达接收传感器,其他则被散射到传播介质中。假设距离较小时散射光强与距离是线性关系,当光源距离传感器无限接近时,光的衰减值可…...

基于深度学习的人脸表情识别(一)

第一篇博客就不用Markdown(什么鬼)来写了。 今天主要是被老板一通说,然后说两月看10篇paper,算了,还是丫丫自己先多码码论文吧。再加之这几天有开博的想法,就索性一起开了,顺道总结下最近看的一…...

Face Expression Recognition with a 2-Channel Convolutional Neural Network(基于双通道卷积神经网络的表情识别部分翻译)

第一次在这记录英文文献哈,**Face Expression Recognition with a 2-Channel Convolutional Neural Network**,2015ILCNN上的,以前就应该是过了一遍,忘了,今天又来看看。 Abstract: 对于人脸表情识别,一项…...

Incremental Linear Discriminant Analysis for Face Recognition(基于人脸识别的增量式LDA的部分翻译)

原文是Incremental Linear Discriminant Analysis for Face Recognition;**IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART B: CYBERNETICS, VOL. 38, NO. 1, FEBRUARY 摘要:降维法已经成功的应用于人脸识别领域,在众多的降维法之内&#x…...

简析Go与Java内存管理的差异

前言 从实践中看,Golang(以下简称Go)应用程序比Java占用更少的内存,这与它们的运行时环境有关,其运行时自带了内存动态分配和自动垃圾回收的管理机制,本文通过分析Go与Java在内存管理机制上的差异&#xff…...

为Kubernetes选择合适的容器运行时

前 言 作为后台支撑,Kubernetes优势明显,具有自动化部署、服务伸缩、故障自我修复、负载均衡等特性。咪付的蓝牙过闸系统和全态识别AI系统的后台支撑采用了Kubernetes,经过线上的长期运行,其状态良好运行平稳。 蓝牙过闸系统和全…...

2D与3D人脸识别详解

人脸是人体最重要的生物特征之一,而人脸研究主要集中在人脸识别方面,人脸的表达模型分为2D人脸和3D人脸。2D人脸识别研究的时间相对较长,方法流程也相对成熟,在多个领域都有使用,但由于2D信息存在深度数据丢失的局限性…...

深度学习中,CPU、GPU、NPU、FPGA如何发挥优势?

随着AI的广泛应用,深度学习已成为当前AI研究和运用的主流方式。面对海量数据的并行运算,AI对于算力的要求不断提升,对硬件的运算速度及功耗提出了更高的要求。 目前,除通用CPU外,作为硬件加速的GPU、NPU、FPGA等一些芯…...

从MobileNet看轻量级神经网络的发展

随着深度学习的火热,计算机视觉领域内的卷积神经网络模型也层出不穷。从1998年的LeNet,到2012年引爆深度学习热潮的AlexNet,再到后来2014年的VGG,2015年的ResNet,深度学习网络模型在图像处理中应用的效果越来越好。神经…...

机器学习中的分类距离

生活中,距离通常是用于形容两个地方或两个物体之间的远近。在人工智能机器学习领域,常使用距离来衡量两个样本之间的相似度。 “物以类聚” 我们知道“物以类聚”通常用于比喻同类的东西经常聚在一起。机器学习中,距离就是遵循物以类聚的思…...

SVM分类器原来这么简单

前 言 SVM,英文全称为 Support Vector Machine,中文名为支持向量机,由数学家Vapnik等人早在1963年提出。在深度学习兴起之前,SVM一度风光无限,是机器学习近几十年来最为经典的,也是最受欢迎的分类方法之一…...