Qt应用开发(基础篇)——滑块类 QSlider、QScrollBar、QDial

一、前言

         滑块类QScrollBar、QSlider和QDial继承于QAbstractSlider,父类主要拥有最大值最小值步长当前值滑块坐标等信息,滑动的时候触发包含值数据变化滑块按下滑块释放等信号。键盘包括左/上和右/下箭头键通过定义的singleStep改变当前值,Page up和Page down通过定义的pageStep调整,Home和End键将值设置为定义的最小值和最大值。

        QDial刻度盘,使用QDial控制一个在自定义范围内的值,该范围一般是环绕0~359°。一般用来针对有角度的场景下使用。

                              

         QSlider滑块手柄,提供让用户沿着水平或垂直槽移动滑块手柄。一般用来显示音量、背光亮度等信息。

        QScrollBar滚动条,QScrollBar提供了用户在文档中的当前位置和可见文档数量的可视化指示。滚动条通常和其他控件配合使用,实现精确导航。

 二、QAbstractSlider类

1、invertedAppearance

        该属性表示是否需要反转值,也就是最大值和最小值显示的位置相反。这个参数常用于QSlider滑块手柄和QDial刻度盘。

bool invertedAppearance() const        //获取值
void setInvertedAppearance(bool)       //设置值

2、invertedControls

        该属性表示是否翻转滚轮和键盘的事件。禁用的时候为滚轮向上为增加,向下为减少,禁用则相反。

bool invertedControls() const        //获取值
void setInvertedControls(bool)       //设置值

3、maximum

        该属性表示滑块的最大值和最小值。

int maximum() const        //获取最大值
void setMaximum(int)       //设置最大值

4、minimum

        该属性表示滑块的最大值和最小值。

int minimum() const     //获取最小值
void setMinimum(int)    //设置最小值

5、orientation

        该属性表示滑块的方向,Qt::Vertical或者Qt::Horizontal。

Qt::Orientation orientation() const        //获取方向
void setOrientation(Qt::Orientation)       //设置方向

6、pageStep

        该属性表示翻页的步长,对应于用户按下PageUp或PageDown的时候滑块移动的距离。

int pageStep() const     //获取步长
void setPageStep(int)    //设置步长

7、singleStep

        该属性表示单步长,对应用户按下上下左右键的时候滑块移动的距离。

int singleStep() const        //获取步长
void setSingleStep(int)       //设置步长

8、sliderDown

        该属性表示滑块是否被按下,以便让抽象滑动条知道跟踪是否有任何效果。

bool isSliderDown() const    //获取滑块是否被按下
void setSliderDown(bool)    //设置滑块是否被按下

9、tracking

        该属性表示是否启用滑块跟踪。如果启用了跟踪(默认值),则滑动块在被拖动时发出valueChanged()信号。如果禁用跟踪,则只有当用户释放滑块时,滑块才会发出valueChanged()信号。

bool hasTracking() const        //获取值
void setTracking(bool enable)   //设置值

10、sliderPosition

        该属性表示当前滑块的位置,如果启动滑块跟踪,sliderPosition和value值是同步的,如果禁用滑块跟踪,在滑动过程中,sliderPosition会发生变化,而value不会,滑块释放之后value值与sliderPosition值相同。

int sliderPosition() const        //获取滑块位置
void setSliderPosition(int)         //设置滑块位置

11、value

        该属性保存当前值,最小值<= 当前值<=最大值。

int value() const        //获取当前值
void setValue(int)       //设置当前值

12、信号

void actionTriggered(int action)        //滑动动作触发 action值如下
1)QAbstractSlider::SliderNoAction         0
2)QAbstractSlider::SliderSingleStepAdd    1
3)QAbstractSlider::SliderSingleStepSub    2
4)QAbstractSlider::SliderPageStepAdd      3
5)QAbstractSlider::SliderPageStepSub      4
6)QAbstractSlider::SliderToMinimum        5
7)QAbstractSlider::SliderToMaximum        6
8)QAbstractSlider::SliderMove             7
void rangeChanged(int min, int max)     //范围发生变化触发
void sliderMoved(int value)             //滑块滑动触发
void sliderPressed()                    //滑块按下触发
void sliderReleased()                   //滑块释放触发
void valueChanged(int value)            //当前值发生变化触发

三、QDial

1、notchSize

        该属性表示当前缺口大小,也就是每个刻度之前的距离,这个值是按控制单位来计算,默认值是1。

int notchSize() const //获取缺口大小

2、notchTarget

        该属性表示缺口之间的像素值,默认3.7像素。设置完此参数,在Desigin拖动控件大小,会发现缺口数量增多或减小,notchSize的值也会相应发生变化。

qreal notchTarget() const             //获取缺口像素
void setNotchTarget(double target)    //设置缺口像素

3、notchesVisible

        该属性表示是否显示缺口。

bool notchesVisible() const            //获取是否启用缺口
void setNotchesVisible(bool visible)   //设置是否启用缺口
notchesVisible = false
notchesVisible = true

4、wrapping

       该属性表示是否启用包装(裹起来)。启动则滑块可以到圆形的任意一个角度,禁用则将在刻度盘底部插入一些空格,滑块限制在图形上端,如果滑到中间底部,则会自动跳到最新端。

bool wrapping() const        //获取是否包裹
void setWrapping(bool on)    //设置是否包裹
wrapping = false
wrapping = true

四、QSlider

1、tickInterval

        该属性表示刻度之间间隔,配合tickPosition使用,如果没有设置,则从singleStep或者pageStep中选一个当做这个间隔。

int tickInterval() const        //获取标记间隔
void setTickInterval(int ti)    //设置标记间隔

2、tickPosition

        该属性保存刻度位置。

QSlider::TickPosition tickPosition() const            //获取标记间隔样式
void setTickPosition(QSlider::TickPosition position)  //设置标记间隔样式
  • QSlider::NoTicks                     不要画任何标记
  • QSlider::TicksBothSides         在槽的两边画刻度。
  • QSlider::TicksAbove                在(水平)滑块上方画刻度
  • QSlider::TicksBelow                在(水平)滑块下方画刻度
  • QSlider::TicksLeft                    在(垂直)滑块的左侧绘制刻度标记
  • QSlider::TicksRight                  在(垂直)滑块的右侧绘制刻度标记

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序框架-事件中心模块-观察者模式

一、观察者模式 1.1 观察者模式定义 意图&#xff1a; 定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变是&#xff0c;所有依赖于它的对象都能得到通知并自动更新。 适用性&#xff1a; 当一个对象状态的改变需要改变其他对象&#xff0c; 或实际对…

大模型使用——超算上部署LLAMA-2-70B-Chat

大模型使用——超算上部署LLAMA-2-70B-Chat 前言 1、本机为Inspiron 5005&#xff0c;为64位&#xff0c;所用操作系统为Windos 10。超算的操作系统为基于Centos的linux&#xff0c;GPU配置为A100&#xff0c;所使用开发环境为Anaconda。 2、本教程主要实现了在超算上部署LLAM…

CentOS 安装 Jenkins

本文目录 1. 安装 JDK2. 获取 Jenkins 安装包3. 将安装包上传到服务器4. 修改 Jenkins 配置5. 启动 Jenkins6. 打开浏览器访问7. 获取并输入 admin 账户密码8. 跳过插件安装9. 添加管理员账户 1. 安装 JDK Jenkins 需要依赖 JDK&#xff0c;所以先安装 JDK1.8。输入以下命令&a…

【RabbitMQ(day4)】SpringBoot整合RabbitMQ与MQ应用场景说明

一、SpringBoot 中使用 RabbitMQ 导入对应的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>配置配置文件 spring:application:name: rabbitmq-springbo…

【解放ipad生产力】如何在平板上使用免费IDE工具完成项目开发

我的博客即将同步至腾讯云开发者社区&#xff0c;邀请大家一同入驻&#xff1a;https://cloud.tencent.com/developer/support-plan?invite_code3o19zyy2pneoo 前言 很多人应该会像我一样吧&#xff0c;有时候身边没电脑突然要写项目&#xff0c;发现自己的平板没有一点作用&…

[openCV]基于赛道追踪的智能车巡线方案V1

import cv2 as cv import os import numpy as npimport time# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir&#xff1a;文件夹根目录输入 ext: 扩展名返回&#xff1a; 文件路径列表""&quo…

❤ npm不是内部或外部命令,也不是可运行的程序 或批处理文件

❤ npm不是内部或外部命令,也不是可运行的程序 或批处理文件 cmd或者终端用nvm 安装提示&#xff1a; npm不是内部或外部命令,也不是可运行的程序或批处理文件 原因&#xff08;一&#xff09; 提示这个问题&#xff0c;有可能是Node没有安装&#xff0c;也有可能是没有配置…

Docker卸载安装及国内镜像源(详细版)

文章目录 一、卸载已有Docker1、首先判断本地有没有docker&#xff1a;2、判断CentOS下 docker是否在运行&#xff1a;3、停止docker运行&查看状态4、yum查看docker安装的包并卸载5、删除docker安装目录6、查看docker version 二、Docker安装及镜像源配置1、centOS 7 yum源…

钉钉群消息推送

1. 添加钉钉群机器人 PC端登录&#xff08;当前版本手机端无法进行推送关键词设置&#xff09;&#xff0c;群设置--> 机器人 --> webhook进行安全设置复制webhook对应的url 2. 群消息推送 钉钉群消息支持纯文本和markdown类型 2.1 调用示例源码 import com.alibaba.…

设计模式之模板方法

一、概述 定义一个操作中的算法的骨架&#xff0c;将一些步骤延迟到子类中。 TemplateMethod使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 二、适用性 1.一次性实现一个算法的不变的部分&#xff0c;并将可变的行为留给子类来实现。 2.各子类中公共…

人机交互与人机混合智能的区别

人机交互和人机融合智能是两个相关但不完全相同的概念&#xff1a; 人机交互是指人与计算机之间的信息交流和互动过程。它关注的是如何设计和实现用户友好的界面&#xff0c;以便人们能够方便、高效地与计算机进行沟通和操作。人机交互通常强调用户体验和界面设计&#xff0c;旨…

6.7.tensorRT高级(1)-使用onnxruntime进行onnx模型推理过程

目录 前言1. python-ort2. C-ort总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-使用 onnxruntime 进行 on…

[openCV]基于拟合中线的智能车巡线方案V2

import cv2 as cv import os import numpy as np# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir&#xff1a;文件夹根目录输入 ext: 扩展名返回&#xff1a; 文件路径列表"""newDir d…

[ MySQL ] — 库和表的操作

目录 库的操作 创建数据库 语法&#xff1a; 使用&#xff1a; 字符集和校验规则 查看系统默认字符集以及校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 操纵数据库 查看数据库 显示创建语句 修改数据库 删除数据库 备…

【Linux】计算机网络套接字编写

文章目录 前言TCP协议和UDP协议网络字节序socket接口sockaddr结构1.创建套接字 cs2.绑定端口号 s3.监听socket s4.接受请求 s5.建立连接 c 地址转换函数字符串转in_addrin_addr转字符串 recvfrom和sendto 前言 上篇文章我们学习了计算机网络分层&#xff0c;了解了网络通信的本…

Vue3_对响应式对象解构赋值之后失去响应性——toRefs()

官网toRefs() :响应式 API&#xff1a;工具函数 | Vue.js toRefs 在调用时只会为源对象上可以枚举的属性创建 ref。如果要为可能还不存在的属性创建 ref&#xff0c;请改用 toRef。 setup(){const state reactive({name:"张三"age:14})const stateAsToRefs toRef…

保留网络:大型语言模型的Transformer继任者

原文信息 原文题目&#xff1a;《Retentive Network: A Successor to Transformer for Large Language Models》 原文引用&#xff1a;Sun Y, Dong L, Huang S, et al. Retentive Network: A Successor to Transformer for Large Language Models[J]. arXiv preprint arXiv:2…

ArduPilot开源代码之Companion Computers简单分析

ArduPilot开源代码之Companion Computers简单分析 1. 源由2. 伴机系统2.1 APSync2.2 DroneKit2.3 FlytOS2.4 Maverick2.5 ROS2.6 Rpanion-server 3. 总结4. 参考资料 1. 源由 从稳定性&#xff0c;社区群体&#xff0c;以及开源方式的角度看&#xff0c;Ardupilot是不错的选择…

Python3 处理PDF之PyMuPDF 入门

PyMuPDF 简介 PyMuPDF是一个用于处理PDF文件的Python库&#xff0c;它提供了丰富的功能来操作、分析和转换PDF文档。这个库的设计目标是提供一个简单易用的API,使得开发者能够轻松地在Python程序中实现PDF文件的各种操作。 PyMuPDF的主要特点如下&#xff1a; 跨平台兼容性&a…

Spring Data JPA源码

导读: 什么是Spring Data JPA? 要解释这个问题,我们先将Spring Data JPA拆成两个部分&#xff0c;即Sping Data和JPA。 从这两个部分来解释。 Spring Data是什么? 摘自: https://spring.io/projects/spring-data Spring Data’s mission is to provide a familiar and cons…