Qt扫盲-QScrollBar理论总结

news2024/11/28 0:52:08

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.coloradmin.cn/o/91963.html

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

相关文章

什么是MOS管的米勒效应

在说MOS管的米勒效应之前我们先看下示波器测量的这个波形: 这个波形其实就是这个MOS管开关电路的波形,探头1这个黄色的测量的是MOS管的栅极,探头2这个蓝色的测量的是MOS管漏极 大家有没有发现这个黄色的波形在上升的过程中出现了一个平台,其实…

一年半经验如何准备前端面试

typeof NaN 的结果是什么? NaN 指“不是一个数字”(not a number),NaN 是一个“警戒值”(sentinel value,有特殊用途的常规值),用于指出数字类型中的错误情况,即“执行数…

如何快速拥有好的测试idea

如果接手任意一个测试任务,如何开始测试以及怎么快速的形成测试点呢?其实也是有一套小套路的。大概整理了下,可以从6个方面来考虑入手。 1.项目 快速了解项目背景、信息对象、项目风险、测试资料、债务、交流、语境分析、交付品、工具。 项目的提出动机…

0~9岁|一文讲清楚精细动作有多重要

人都有两宝:“双手和大脑”。 在我们的脑中枢神经内,有一部分专门掌管手部动作,手部动作越精细,与之对应的大脑神经元也就越发达。作为儿童智能的重要组成部分,精细动作还是衡量儿童神经系统发育的一个重要指标。 一、…

C++:继承、模板、CRTP:谈谈C++多态设计模式(三):函数模板

1:模板的概念 C中不止有 面向对象编程思想,还要泛型编程思想。而泛型编程思想的核心就是 模板 模板的建立大大提搞了复用行,C中的模板包括 :函数模板和类模板。 2:函数模板基本语法 函数模板 概念: 建立…

细粒度图像分类论文研读-2018

文章目录Object-Part Attention Model for Fine-grained Image Classification(by localization- classification subnetwork)AbstractIntroductionObject- Part Attention ModelObject- Part Spatial Constraint ModelOur OPAM ApproachObject-level At…

Flink从入门到放弃—Stream API—clean()方法

文章目录导航clean()案例贴上源码导航 涉及到文章: Flink从入门到放弃—Stream API—Join实现(即多流操作) Flink从入门到放弃—Stream API—常用算子(map和flatMap) Flink从入门到放弃—Stream API—常用算子(filter…

讲解Redis的主从复制

Redis 主从复制1 主从复制2 作用3 主从复制架构图4 搭建主从复制5 使用规则1 主从复制 主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据 无法解决: 1.master节点出现故障的自动故障转移 主从复制,是指将一台Redis服务器的数据,复制到…

数据挖掘的步骤有哪些?

所谓数据挖掘就是从海量的数据中,找到隐藏在数据里有价值的信息。因为这个数据是隐式的,因此想要挖掘出来并不简单。那么,如何进行数据挖掘呢?数据挖掘的步骤有哪些呢?一般来讲,数据挖掘需要经历数据收集、…

openEuler 倡议建立 eBPF 软件发布标准

eBPF 是一个能够在内核运行沙箱程序的技术,提供了一种在内核事件和用户程序事件发生时安全注入代码的机制,使得非内核开发人员也可以对内核进行控制。随着内核的发展,eBPF 逐步从最初的数据包过滤扩展到了网络、内核、安全、跟踪等&#xff0…

软件测试之测试用例评审

一、评审目的 一般来说,参加测试用例评审的人员包括对应项目的产品人员、设计人员、开发人员和测试人员。 图1-1 测试用例评审相关人员 测试用例评审会议的发起者一般是测试人员,既然我们是发起者,那我们发起这个会议的目的是什么呢&#x…

【Java开发】 Spring 11 :Spring Boot 配置 Web 运行参数并部署至服务器

Spring Boot 项目开发结束后的工作便是运维,简单来说需要配置 Web 运行参数和项目部署两大工作,本文将尽可能详细地给大家讲全! 目录 1 定制 Web 容器运行参数 1.1 运行参数介绍 1.2 项目搭建 ① 通过 IDEA Spring Initializr 创建项目 …

使用nginx代理服务器上的docker容器接口

假如项目通过自动化部署在了docker容器里面:教程在这里vue使用dockernodenginxlinux自动化部署_1024小神的博客-CSDN博客 怎么将nginx通过域名绑定到这个容器呢? 例如我们将一个二级域名绑定second.1024shen.com/#/ 到我们的服务 我们需要先在域名解析…

阿里P8专家整理的面试秘籍,我看了三个月,成功入职京东,税前30K

入职京东,月薪30K 今年三月份的时候,我从上一家外包公司裸辞。那时正值疫情期间,实在受不了公司的压迫,毅然决然的选择了离职。 卧薪尝胆三个月后,才收到京东的offer,谈到了30k的月薪顺利入职。 本来那时…

DPDK源码分析之l2fwd

什么是L2转发 2层转发,即对应OSI模型中的数据链路层,该层以Mac帧进行传输,运行在2层的比较有代表性的设备就是交换机了。 当交换机收到数据时,它会检查它的目的MAC地址,然后把数据从目的主机所在的接口转发出去。 交…

SSM 学习管理系统

SSM 学习管理系统 SSM 学习管理系统 功能介绍 首页 图片轮播展示 网站公告 学生注册 教师注册 课程资料 视频学习 友情链接 资料详情 学习进度 评论 收藏 后台管理 登录 管理员管理 修改密码 网站公告管理 友情链接管理 轮播图管理 学生管理 班级管理 我的班级管理 教师管理…

微信小程序 | 小程序的内置组件

🖥️ 微信小程序专栏:微信小程序 | 小程序的内置组件 🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 ✨ 个人主页:CoderHing的个人主页 🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️…

【轻量级开源ROS 的机器人设备(4)】--(3)通信实现

前文链接 【轻量级开源ROS 的机器人设备(4)】--(2)通信实现_无水先生的博客-CSDN博客 六、数据流 数据流 虽然 XML-RPC 为远程方法调用提供了一种简单而干净的协议,但其冗长和以文本为中心的编码使其不适合高带宽和低…

手把手分享:如何将小程序游戏引入自有APP?(Android篇)

上一期的为大家分享了:如何在iOS中引入FinClip SDK,并将小程序游戏运行到自有App 中。点击查看:👉手把手系列:如何将小程序游戏引入自有APP?(iOS篇) 本周继续分享如何在Android系统…

小红书如何做推广增粉?怎样让小红书快速增加粉丝?

互联网时代,任何什么平台的推广都需要流量,没有流量的账号是做不起来的,也就没有宣传或是转化的效果。 小红书账号粉丝数量和权重是成正比的,涨粉越多的账号,说明越受到用户的喜欢,账号笔记的数据就会越好…