Qt应用开发(基础篇)——数值微调输入框QAbstractSpinBox、QSpinBox、QDoubleSpinBox

目录

一、前言

二、QAbstractSpinBox类

1、accelerated

2、acceptableInput

3、alignment

4、buttonSymbols

5、correctionMode

6、frame

7、keyboardTracking

8、readOnly

9、showGroupSeparator

10、specialValueText

11、text 

12、wrapping

13、信号

二、QSpinBox类

1、cleanText

2、displayIntegerBase

3、maximum

4、minimum

5、prefix

6、suffix

7、singleStep

8、value

9、其他方法

10、信号

三、QDoubleSpinBox类

1、decimals


一、前言

       QAbstractSpinBox是全部微调输入框的父类,这是一种允许用户通过点击上下箭头按钮或输入数字来调整数值的图形用户界面控件,父类提供了当前值text、对齐方式align、只读readOnly等通用属性和方法。

        QSpinBox整数微调输入框,设计用来处理整数的输入。 

        

        QDoubleSpinBox双精度微调输入框,设计用来处理float型和double型的输入。

        

二、QAbstractSpinBox类

1、accelerated

        该属性表示是否启用加速。当按住上下键的时候当前值会增加/减少,启用此属性,则加速。

bool isAccelerated() const        //获取是否加速
void setAccelerated(bool on)      //设置是否加速

2、acceptableInput

        该属性表示当前输入是否满足验证。

bool hasAcceptableInput() const    //获取是否满足

3、alignment

        该属性表示对齐方式。默认靠左对齐 Qt::AlignLeft。

Qt::Alignment alignment() const        //获取对齐方式
void setAlignment(Qt::Alignment flag)  //设置对齐方式

4、buttonSymbols

        该属性标识按钮的样式。

QAbstractSpinBox::ButtonSymbols buttonSymbols() const        //获取样式
void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)    //设置样式
  • QAbstractSpinBox::UpDownArrow          //上下样式
  • QAbstractSpinBox::PlusMinus                 //加减样式
  • QAbstractSpinBox::NoButtons                 //不显示按钮

5、correctionMode

        该属性表示校正模式。

QAbstractSpinBox::CorrectionMode correctionMode() const        //获取校正模式
void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm)    //设置校正模式
  • QAbstractSpinBox::CorrectToPreviousValue                //恢复到最后一个有效值
  • QAbstractSpinBox::CorrectToNearestValue                 //恢复到最近的有效值

6、frame

        该属性表示是否绘制框。

bool hasFrame() const        //获取值
void setFrame(bool)          //设置值

7、keyboardTracking

        该属性表示是否启用键盘跟踪。如果启用,则在从键盘输入新值时,spinbox会发出valueChanged()和textChanged()信号。

        例如:当用户通过输入6,0和0输入值600时,spinbox会发出3个信号,分别为6,60和600。如果键盘跟踪被禁用,则spinbox在输入时不会发信号。当回车键被按下时,当键盘焦点丢失时,或者当其他spinbox功能被使用时,它会稍后发出信号。        

8、readOnly

        该属性表示是否只读。只读模式下不可编辑,可以复制,不显示光标。

bool isReadOnly() const        //获取是否只读
void setReadOnly(bool r)       //设置是否只读

9、showGroupSeparator

        该属性保留是否启用千位分隔符。默认false。

        

10、specialValueText

        该属性保存特殊文本,如果设置了此值,当当前值等于minimum()时,将显示此文本而不是数字值。如果要关闭此功能,设置空字符即可。

QString specialValueText() const                //获取特殊文本
void setSpecialValueText(const QString &txt)    //设置特殊文本

         实例:显示一个0-100%的输入框,当显示0%的时候显示为自动。

QSpinBox *zoomSpinBox = new QSpinBox;
zoomSpinBox->setRange(0, 100);
zoomSpinBox->setSingleStep(10);
zoomSpinBox->setSuffix("%");
zoomSpinBox->setSpecialValueText(tr("Automatic"));
zoomSpinBox->setValue(100);

         此程序当输入为0的时候,将自动变化文本为“Automatic”,textChanged()信号中得到的值为value为0,text值为“Automatic”

           

        注意:在Q5.9.6中,如果是按向下箭头减少到0%,textChanged()得到的字符串是“Automatic”,如果是键盘输入0,输入的一瞬间就触发textChanged()信号得到“0%”,然后文本自动变化成“Automatic”,这时候并没有在次触发信号,这是一个版本Bug。

11、text 

        该属性保存输入框当前文本。

QString text() const   //获取当前文本

12、wrapping

        该属性表示取值范围是否头尾相连,最大值向上回到最小值,最小值向下回到最大值。

bool wrapping() const            //获取是否启用值环绕
void setWrapping(bool w)         //设置是否启用值环绕

13、信号

void editingFinished()        //输入结束时候触发

二、QSpinBox类

1、cleanText

        该属性保存编辑框的文本,但不包括任何前缀、后缀、前导或尾随空格。setSuffix("%")后缀多一个“%”,text()得到“40%”,cleanText()得到“40”。

2、displayIntegerBase

        该属性表示显示值的进制,默认十进制。

int displayIntegerBase() const            //获取进制
void setDisplayIntegerBase(int base)      //设置进制

3、maximum

        该属性保存预设的最大值。

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

4、minimum

        该属性保存预设的最小值。

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

5、prefix

        该属性保存文本前缀。如果设置了specialValueText,值为最小值的时候显示特殊文本,这时候前缀不显示。

QString prefix() const                //获取预设前缀
void setPrefix(const QString &prefix) //设置预设前缀

6、suffix

        该属性保存文本后缀。如果设置了specialValueText,值为最小值的时候显示特殊文本,这时候后缀不显示。

QString suffix() const                    //获取预设后缀
void setSuffix(const QString &suffix)     //设置预设后缀

7、singleStep

        该属性表示步长,上下按钮根据此步长加减,默认为1。

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

8、value

        该属性标识当前值。

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

9、其他方法

void setRange(int minimum, int maximum);//设置预设最大值和最小值

10、信号

void textChanged(const QString &text)    //文本发生变化时触发
void valueChanged(int i)                 //值发生变化时触发

三、QDoubleSpinBox类

1、decimals

        该属性表示精度,用于显示小数数目。小数的最大值是DBL_MAX_10_EXP + DBL_DIG(即323),如果设置范围超过,也会被强行拉回来。

int decimals() const        //获取精度
void setDecimals(int prec)  //设置精度

        QDoubleSpinBox使用起来和QSpinBox除了表示的类型不同,几乎一样,所以它也一样拥有cleanTextmaximumminumumprefixsingleStepsuffixvalue属性,这些直接参考上文,有差异的无非就是int改为double。

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

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

相关文章

微信小程序 - 解析富文本插件版们

一、html2wxml 插件版 https://gitee.com/qwqoffice/html2wxml 申请使用注意事项 插件版本解析服务是由 QwqOffice 完成,存在不稳定因素,如对稳定性有很高的要求,请自行搭建解析服务,或在自家服务器上直接完成解析。对于有关插…

【Linux】 UDP网络套接字编程

🍎作者:阿润菜菜 📖专栏:Linux系统网络编程 文章目录 一、网络通信的本质(port标识的进程间通信)二、传输层协议UDP/TCP认识传输层协议UDP/TCP网络字节序问题(规定大端) 三、socket编…

VGG卷积神经网络-笔记

VGG卷积神经网络-笔记 VGG是当前最流行的CNN模型之一, 2014年由Simonyan和Zisserman提出, 其命名来源于论文作者所在的实验室Visual Geometry Group。 测试结果为: 通过运行结果可以发现,在眼疾筛查数据集iChallenge-PM上使用VGG…

Prometheus中的关键设计

1、标准先行,注重生态 Prometheus 最重要的规范就是指标命名方式,数据格式简单易读。比如,对于应用层面的监控,可以要求必须具备这几个信息。 指标名称 metric Prometheus 内置建立的规范就是叫 metric(即 __name__…

C++ 用指针处理数组元素

指针加减运算的特点使得指针特别合适于处理存储在一段连续内存空间中的同类数据。而数组恰好是具有一定顺序关系的若干同类型变量的集合体,数组元素的存储在物理上也是连续的,数组名就是数组存储的首地址。这样,便可以使用指针来对数组及其元…

使用docker 搭建nginx + tomcat 集群

创建3个Tomcat容器,端口分别映射到 8080,8081,8082,使用数据卷挂载,分别将宿主机目录下的 /opt/module/docker/tomcat3/ROOT1/,/opt/module/docker/tomcat3/ROOT2/,/opt/module/docker/tomcat3/ROOT2/ 挂载到 容器内部…

Gitignore忽略文件

默认情况下,Git会监视我们项目中的所有内容,但是有些内容比如mode_modules中的内容,我们不希望他被Git所管理。 我们可以在我们项目目录中添加一个 .gitignore 文件来设置那些需要git忽略的文件。

rest-apiV2.0.0升级为simplest-api开源框架生态之simplest-jpa发布

什么是 simplest simplest 追求存粹简单和极致。 旨在为项目快速开发提供一系列的基础能力,方便用户根据项目需求快速进行功能拓展 不在去关心一些繁琐。重复工作,而是把重点聚焦到业务。 前言 程序 10 年。作为一个多年程序。深知每个项目和程序&a…

通用商城项目(中)

金山编译器出问题了。下面段落标号全出问题了,排版也出问题了。懒得改了。 使用对象存储OSS,保存品牌logo 新建Module,提供上传、显示服务 有些不明所以的,按照steinliving-commodity配置了一通pom.xml 新建application.yml&…

实现邮箱管理之gmail邮箱、office365(Azure)邮箱之披荆斩棘问题一览

要进行Office365邮箱的授权对接,你需要先申请一个应用,并获取授权访问令牌。 以下是一个简单的步骤: 登录 Azure 门户:https://portal.azure.com/创建一个新的应用程序,或者使用现有的应用程序。要创建新的应用程序&…

从0到1开发go-tcp框架【3-读写协程分离、引入消息队列、进入连接管理器、引入连接属性】【基础篇完结】

从0到1开发go-tcp框架【3-读写协程分离、引入消息队列、进入连接管理器、引入连接属性】 1 读写协程分离[v0.7] 添加一个Reader和Writer之间通信的channel添加一个Writer goroutineReader由之前直接发送给客户端改为发送给通信channel启动Reader和Writer一起工作 zinx/znet/co…

【Golang 接口自动化05】使用yml管理自动化用例

目录 YAML 基本语法 对象:键值对的集合(key:value) 数组:一组按顺序排列的值 字面量:单个的、不可再分的值(数字、字符串、布尔值) yml 格式的测试用例 定义yml文件 创建结构体 读取yml文件中的用例数据 调试…

【1.3】Java微服务:Spring Cloud版本说明

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: 微服务 ✨特色专栏: 知识分享 &#x…

【后端面经】微服务构架 (1-6) | 隔离:如何确保心悦会员体验无忧?唱响隔离的鸣奏曲!

文章目录 一、前置知识1、什么是隔离?2、为什么要隔离?3、怎么进行隔离?A) 机房隔离B) 实例隔离C) 分组隔离D) 连接池隔离 与 线程池隔离E) 信号量隔离F) 第三方依赖隔离二、面试环节1、面试准备2、基本思路3、亮点方案A) 慢任务隔离B) 制作库与线上库分离三、章节总结 …

深度学习各层负责什么内容?

1、深度学习——神经网络简介 深度学习(Deep Learning)(也称为深度结构学习【Deep Structured Learning】、层次学习【Hierarchical Learning】或者是深度机器学习【Deep Machine Learning】)是一类算法集合,是机器学习的一个分支。 深度学习方法近年来&#xff0c…

元宇宙虚拟展厅的特点是什么呢?优势有哪些?

元宇宙是一个很广阔的虚拟世界,它可以创造出更为丰富、沉浸式的体验,这种全新的体验为展览和艺术领域带来了更多的可能性,元宇宙虚拟展厅以其多样化、互动性、沉浸式展示的特点,带领大家进入一个虚拟现实的全新世界。 元宇宙虚拟展…

MACOM EDI 需求分析

MACOM 是一家全球性半导体公司,专注于设计和制造高性能射频、微波和光电元件,其产品被广泛应用于通信、航空航天、国防、工业和医疗等领域。随着 MACOM 的不断发展,传统数据传输方式效率较低,无法满足 MACOM 的需求。为了提高企业…

使用自适应去噪在线顺序极限学习机预测飞机发动机剩余使用寿命(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

代理模式--静态代理和动态代理

1.代理模式 定义:代理模式就是代替对象具备真实对象的功能,并代替真实对象完成相应的操作并且在不改变真实对象源代码的情况下扩展其功能,在某些情况下,⼀个对象不适合或者不能直接引⽤另⼀个对象,⽽代理对象可以在客户…