Qt应用开发(基础篇)——数值微调输入框QAbstractSpinBox、QSpinBox、QDoubleSpinBox
目录
一、前言
二、QAbstractSpinBox类
1、accelerated
2、acceptableInput
3、alignment
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除了表示的类型不同,几乎一样,所以它也一样拥有cleanText、maximum、minumum、prefix、singleStep、suffix、value属性,这些直接参考上文,有差异的无非就是int改为double。
相关文章:
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、信号 二、Q…...
html | 无js二级菜单
1. 效果图 2. 代码 <meta charset"utf-8"><style> .hiddentitle{display:none;}nav ul{list-style-type: none;background-color: #001f3f;overflow:hidden; /* 父标签加这个,防止有浮动子元素时,该标签失去高度*/margin: 0;padd…...
appium的基本使用
appium的基本使用 一、appium的基本使用appium环境安装1、安装Android SDK 2、安装Appium3、安装手机模拟器4、Pycharm安装 appium-python-alicent5、连接appium和模拟器6、Python代码调用appium软件,appium软件在通过adb命令调用android操作系统(模拟器…...
Dockerfile构建nginx镜像(编译安装)
Dockerfile构建nginx镜像 1、建立工作目录 [rootdocker ~]# mkdir nginx [rootdocker ~]# cd nginx/ 2、编写Dockerfile文件 [rootdocker nginx]# vim run.sh [rootdocker nginx]# vim Dockerfile #基于的基础镜像 FROM centos:7#镜像作者信息 MAINTAINER Crushlinux <…...
手机屏幕视窗机器视觉定位软硬件-康耐德
【检测目的】 手机屏幕视窗视觉定位 【效果图片】 【安装示意图】 【硬件配置】...
Databend 开源周报第 104 期
Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 从 Kafka 载入数…...
用于医学图像分类的双引导的扩散网络
文章目录 DiffMIC: Dual-Guidance Diffusion Network for Medical Image Classification摘要本文方法实验结果 DiffMIC: Dual-Guidance Diffusion Network for Medical Image Classification 摘要 近年来,扩散概率模型在生成图像建模中表现出了显著的性能…...
8.2day03 Redis入门+解决员工模块
概述 在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景࿰…...
通过案例实战详解elasticsearch自定义打分function_score的使用
前言 elasticsearch给我们提供了很强大的搜索功能,但是有时候仅仅只用相关度打分是不够的,所以elasticsearch给我们提供了自定义打分函数function_score,本文结合简单案例详解function_score的使用方法,关于function-score-query…...
SpringBoot第28讲:SpringBoot集成MySQL - MyBatis-Plus方式
SpringBoot第28讲:SpringBoot集成MySQL - MyBatis-Plus方式 本文是SpringBoot第28讲,MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyB…...
AI 绘画Stable Diffusion 研究(三)sd模型种类介绍及安装使用详解
本文使用工具,作者:秋葉aaaki 免责声明: 工具免费提供 无任何盈利目的 大家好,我是风雨无阻。 今天为大家带来的是 AI 绘画Stable Diffusion 研究(三)sd模型种类介绍及安装使用详解。 目前,AI 绘画Stable Diffusion的…...
Docker 命令没有提示信息
问题描述 提示:这里描述项目中遇到的问题: linux安装docker后发现使用docker命令没有提示功能,使用 Tab 键的时候只是提示已有的文件 解决方案: 提示:这里填写该问题的具体解决方案: Bash命令补全 Docke…...
springboot第33集:nacos图
./startup.sh -m standalone Nacos是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。Nacos提供简单的鉴权实现,为防止业务错用的弱鉴权体系,不是防止恶意攻击的强鉴权体系。 鉴…...
学习gRPC(一)
gRPC 简介 根据官网的介绍,gRPC 是开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以有效地连接数据中心内部和数据中心之间的服务,并为负载平衡、跟踪、运行状况检查和身份验证提供支持。同时由于其建立…...
【二进制安全】堆漏洞:Double Free原理
参考:https://www.anquanke.com/post/id/241598 次要参考:https://xz.aliyun.com/t/6342 malloc_chunk 的源码如下: struct malloc_chunk { INTERNAL_SIZE_T prev_size; /*前一个chunk的大小*/ INTERNAL_SIZE_T size; /*当前chunk的…...
python之open,打开文件时,遇到解码错误处理方式
在Python中,当我们打开一个文件时,我们可以指定文件的编码方式。如果文件的编码方式与我们指定的编码方式不同,那么就会出现解码错误。为了避免这种情况,我们可以使用errors参数来指定如何处理解码错误。 errors参数用于指定解码…...
STM32 CAN通信-CubeMX环境下CAN通信程序的编程与调试经验
文章目录 STM32 CAN通信-CubeMX环境下CAN通信程序的编程 STM32 CAN通信-CubeMX环境下CAN通信程序的编程 STM32F103ZE芯片 CAN通信测试代码: #include "main.h" #include "can.h"CAN_HandleTypeDef hcan1;void SystemClock_Config(void);int ma…...
windows创建不同大小的文件命令
打开命令窗口(windowsR输入cmd打开) 输入:fsutil file createnew C:\Users\Desktop\fileTran\10M.txt 10240000,创建10M大小的文件。 文件若存在需要先删除。...
Attention Is All You Need
Attention Is All You Need 摘要1. 简介2. Background3. 模型架构3.1 编码器和解码器堆栈3.2 Attention3.2.1 缩放的点积注意力(Scaled Dot-Product Attention)3.2.2 Multi-Head Attention3.2.3 Attention 在我们模型中的应用 3.3 Position-wise前馈网络…...
手写线程池 - C++版 - 笔记总结
1.线程池原理 创建一个线程,实现很方便。 缺点:若并发的线程数量很多,并且每个线程都是执行一个时间较短的任务就结束了。 由于频繁的创建线程和销毁线程需要时间,这样的频繁创建线程会大大降低 系统的效率。 2.思考 …...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7
在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...
【Java多线程从青铜到王者】单例设计模式(八)
wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本,sleep也是可以指定时间的,也就是说时间一到就会解除阻塞,继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒),wait能被notify提前唤醒…...
