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

Qt应用开发(基础篇)——滑块类 Slider、ScrollBar、Dial

一、前言

         滑块类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                  在(垂直)滑块的右侧绘制刻度标记

相关文章:

Qt应用开发(基础篇)——滑块类 Slider、ScrollBar、Dial

一、前言 滑块类QScrollBar、QSlider和QDial继承于QAbstractSlider&#xff0c;父类主要拥有最大值、最小值、步长、当前值、滑块坐标等信息&#xff0c;滑动的时候触发包含值数据变化、滑块按下、滑块释放等信号。键盘包括左/上和右/下箭头键通过定义的singleStep改变当前值&a…...

iOS的NSUserActivity

NSUserActivity 是 iOS 平台上的一个类&#xff0c;用于支持应用程序之间的交互和继续活动&#xff08;Continuity&#xff09;。它主要用于实现 Handoff 功能&#xff0c;使用户可以在不同的 Apple 设备上无缝地继续进行某个任务。NSUserActivity 还可以用于保存和传递应用程序…...

Android HTTP使用(详细版)

前言 在面试过程中,HTTP 被提问的概率还是比较高的。 小林我搜集了 5 大类 HTTP 面试常问的题目,同时这 5 大类题跟 HTTP 的发展和演变关联性是比较大的,通过问答 + 图解的形式由浅入深的方式帮助大家进一步的学习和理解 HTTP 协议。 HTTP 基本概念 Get 与 Post HTTP 特性…...

【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…...

前端开发:基于cypress的自动化实践

如何在vue中使用cypress如何运行cypress如何编写测试用例如何解决测试数据的问题遇到的元素定位的问题如何看待cypresscypress是否为最佳工具测试怎么办&#xff1f; 如何在vue中使用cypress vue提供了vue-cli 可以快速的创建vue项目。 vue create hello-world在选择安装项里…...

C++类和对象(下部曲)

构造函数 1 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值 虽然对象中已经有了一个初始值&#xff0c;但是不能将其称为对对象中成员变量的初始化 构造函数体中的语句只能将其称为赋初值&#xff0c;而…...

解决eclipse 打开报错 An error has occurred. See the log file null.

解决eclipse 打开报错an error has ocurred. See the log file null 出现原因&#xff1a;安装了高版本的jdk,更换 jdk 版本&#xff0c;版本太高了。 解决方案&#xff1a;更改环境变量 改成 jkd 1.8...

javascript学习

一、数据类型 所有的变量都以var定义 数值 js不区分小数和整数 文本图形音频视频数组 var id_arr [1,2,3,4,5]对象 // 定义对象 var person {name: zhangsan,age: 3,tags: [java,js,php]} // 取对象的值 var person_name person.name...

基于SSM实现个人随笔分享平台:创作心灵,分享自我

项目简介 本文将对项目的功能及部分细节的实现进行介绍。个人随笔分享平台基于 SpringBoot SpringMVC MyBatis 实现。实现了用户的注册与登录、随笔主页、文章查询、个人随笔展示、个人随笔查询、写随笔、草稿箱、随笔修改、随笔删除、访问量及阅读量统计等功能。该项目登录模…...

从零开始学Docker(二):启动第一个Docker容器

宿主机环境&#xff1a;RockyLinux 9 这个章节不小心搞成命令学习了&#xff0c;后面在整理成原理吧 Docker生命周期 拉取并启动Nginx容器 # 查找镜像 例如&#xff1a;nginx [root192 ~]# docker search nginx 我们可以看到&#xff0c;第一个时官方认证构建的nginx # 拉…...

unity 鼠标事件

Input.GetMouseButtonDown(0&#xff09;点击屏幕Input.mousePosition鼠标的坐标Input.GetKeyDown(KeyCode.Space)点击空格 1.2D游戏中鼠标触发事件 using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEditor; using Un…...

【ChatGPT】相关解读

ChatGPT 背后的“功臣”——RLHF 技术详解 Meta 发布开源可商用模型 Llama 2&#xff0c;实际体验效果如何&#xff1f; Llama 2线上试用地址&#xff1a;replicate.com/a16z-infr…...

【数据中台】DataX源码进行二开插件

参考官方 使用的离线数据同步工具/平台&#xff0c;实现不同数据库等各种异构数据源之间高效的数据同步功能 工具部署 https://github.com/alibaba/DataX/blob/master/userGuid.md 拉取下来的代码&#xff0c;pom.xml里面注释 <!--<module>tsdbreader</module&g…...

【数据结构与算法】基数排序

基数排序 基数排序&#xff08;Radix Sort&#xff09;属于“分配式排序”&#xff0c;又称“桶子法”或 bin sort&#xff0c;顾名思义&#xff0c;它是通过键值的各个位的值&#xff0c;将要排序的元素分配至某些“桶”中&#xff0c;达到排序的作用。基数排序法是属于稳定性…...

Java基础一(队列和堆栈)

//示例 //添加新的元素 stack.push(Element e)queue.add(Element e) //满报IllegalStateException异常 queue.offer(Element e) //满成功true&#xff0c;否则false //删除 stack.pop()queue.remove() //移除头部元素&#xff0c;空报异常 queue.poll() //移除头部元素&…...

使用ansible playbook编写lnmp架构

使用ansible playbook编写lnmp架构 - name: nginx playgather_facts: falsehosts: lnmpremote_user: roottasks: - name: stop firewalldservice: namefirewalld statestopped- name: syslinuxcommand: /usr/sbin/setenforce 0ignore_errors: true- name: nginx.repocopy: src/…...

使用 TorchText 进行语言翻译

使用 TorchText 进行语言翻译 本教程说明如何使用torchtext的几个便捷类来预处理包含英语和德语句子的著名数据集的数据&#xff0c;并使用它来训练序列到序列模型&#xff0c;并注意将德语句子翻译成英语 。 它基于 PyTorch 社区成员 Ben Trevett 的本教程&#xff0c;并由 …...

SpringBoot整合SSMP小demo

创建项目 spring web&#xff0c;mybatis&#xff0c;mysql勾选 加入mp和druid&#xff0c;依赖见SpringBoot基础认识_阳光明媚UPUP的博客-CSDN博客 yml数据源 server:port: 81 spring:datasource:druid: #整合方式配置driver-class-name: com.mysql.jdbc.Driverurl: jdbc:m…...

51单片机--红外遥控

文章目录 红外遥控的介绍硬件电路NEC编码外部中断红外遥控实例代码 红外遥控的介绍 红外遥控是一种无线、非接触控制技术&#xff0c;通过使用红外线来传送控制信号。它具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点&#xff0c;因此被广泛应用于各种电子…...

【图像分类】CNN+Transformer结合系列.2

介绍几篇利用CNNTransformer实现图像分类的论文&#xff1a;CMT&#xff08;CVPR2022&#xff09;&#xff0c;MaxViT(ECCV2022)&#xff0c;MaxViT&#xff08;ECCV2022&#xff09;&#xff0c;MPViT&#xff08;CVPR2022&#xff09;。主要是说明Transformer的局限性&#x…...

终极指南:5步掌握番茄小说下载器的完整使用方案

终极指南&#xff1a;5步掌握番茄小说下载器的完整使用方案 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字阅读时代&#xff0c;我们常常面临一个共同的问题&#xff1…...

如何在Windows上快速安装ViGEmBus虚拟手柄驱动:终极指南

如何在Windows上快速安装ViGEmBus虚拟手柄驱动&#xff1a;终极指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 想要在Windows电脑上畅玩所有游戏&#…...

Netgear路由器急救指南:nmrpflash如何让变砖设备重获新生

Netgear路由器急救指南&#xff1a;nmrpflash如何让变砖设备重获新生 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 当你心爱的Netgear路由器因为固件升级失败、意外断电或其他原因变成一块"砖头&q…...

构建轻量级LLM工具集:模块化设计、多模型集成与本地化部署实践

1. 项目概述&#xff1a;一个面向日常的轻量级LLM工具集最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“Daily-LLM”。光看名字&#xff0c;你可能会觉得这又是一个庞大的、需要海量算力才能跑起来的“大模型”项目。但点进去仔细研究后&#xff0c;我…...

AI编程助手安全规则实战:从SQL注入防御到团队安全基线构建

1. 项目概述&#xff1a;当AI编程助手遇上安全红线最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“cursor-security-rules”。光看名字&#xff0c;你大概能猜到它和Cursor这个AI编程工具有关&#xff0c;而且重点是“安全规则”。没错&#xff0c;这个项目本质上是一个…...

免费开源鼠标连点器终极指南:5分钟掌握高效自动化技巧

免费开源鼠标连点器终极指南&#xff1a;5分钟掌握高效自动化技巧 【免费下载链接】MouseClick &#x1f5b1;️ MouseClick &#x1f5b1;️ 是一款功能强大的鼠标连点器和管理工具&#xff0c;采用 QT Widget 开发 &#xff0c;具备跨平台兼容性 。软件界面美观 &#xff0c;…...

树莓派+Kali Linux+PiTFT打造便携式安全测试平台全攻略

1. 项目概述如果你和我一样&#xff0c;对网络安全和嵌入式硬件都抱有浓厚的兴趣&#xff0c;那么将Kali Linux与树莓派结合&#xff0c;再配上一块小巧的触摸屏&#xff0c;绝对是一个能让你兴奋起来的项目。这不仅仅是把两个热门技术拼在一起&#xff0c;更是打造一个真正便携…...

开源婚礼技能库:用项目管理思维破解备婚焦虑,打造个性化高性价比婚礼

1. 项目概述&#xff1a;婚礼技能库的诞生与价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“awesome-wedding-skills”。光看名字&#xff0c;你可能会觉得这又是一个普通的“awesome”系列资源列表&#xff0c;无非是收集一些婚礼策划、摄影、化妆的链接。但当我点…...

MIMO-OFDM在ISAC系统中的同步技术与性能优化

1. MIMO-OFDM技术在ISAC系统中的核心价值 毫米波频段下的集成感知与通信(ISAC)系统正成为6G网络的关键使能技术。作为其物理层核心&#xff0c;MIMO-OFDM架构通过正交子载波和空间复用技术&#xff0c;同时实现了高速数据传输与高精度环境感知。这种双功能集成并非简单叠加&…...

Sunshine游戏串流架构深度解析:3种高效部署方案完全指南

Sunshine游戏串流架构深度解析&#xff1a;3种高效部署方案完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine作为一款开源自托管的游戏串流服务器&#xff0c;为Mo…...