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.思考 …...

PHP 容器化引发线上 502 错误状态码的修复
最后更新时间 2023-01-24. 背景 笔者所在公司技术栈为 Golang PHP,目前部分项目已经逐步转 Go 语言重构,部分 PHP 业务短时间无法用 Go 重写。 相比 Go 语言,互联网公司常见的 Nginx PHP-FPM 模式,经常会出现性能问题—— 特…...

QT中UDP之UDPsocket通讯
目录 UDP: 举例: 服务器端: 客户端: 使用示例: 错误例子并且改正: UDP: (User Datagram Protocol即用户数据报协议)是一个轻量级的,不可靠的࿰…...

【C语言】10-三大结构之循环结构-1
1. 引言 在日常生活中经常会遇到需要重复处理的问题,例如 统计全班 50 个同学平均成绩的程序求 30 个整数之和检查一个班级的同学程序是否及格要处理以上问题,最原始的方法是分别编写若干个相同或相似的语句或者程序段进行处理 例如:处理 50 个同学的平均成绩可以先计算一个…...

Windows下RocketMQ的启动
下载地址:下载 | RocketMQ 解压后 一、修改runbroker.cmd 修改 bin目录下的runbroker.cmd set "JAVA_OPT%JAVA_OPT% -server -Xms2g -Xmx2g" set "JAVA_OPT%JAVA_OPT% -XX:MaxDirectMemorySize15g" set "JAVA_OPT%JAVA_OPT% -cp %CLASSP…...

linux内核升级 docker+k8s更新显卡驱动
官方驱动 | NVIDIA在此链接下载对应的显卡驱动 # 卸载可能存在的旧版本nvidia驱动(如果没有安装过可跳过,建议执行) sudo apt-get remove --purge nvidia* # 安装驱动需要的依赖 sudo apt-get install dkms build-essential linux-headers-generic sudo vim /etc/mo…...

express学习笔记2 - 三大件概念
中间件 中间件是一个函数,在请求和响应周期中被顺序调用(WARNING:提示:中间件需要在响应结束前被调用) 路由 应用如何响应请求的一种规则 响应 / 路径的 get 请求: app.get(/, function(req, res) {res…...

Steam搬砖蓝海项目
这个项目早在很久之前就已经存在,并且一直非常稳定。如果你玩过一些游戏,你一定知道Steam是什么平台。Steam平台是全球最大的综合性数字发行平台之一,玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。 今天我给大家解释一下什么是…...

就业并想要长期发展选数字后端还是ic验证?
“就业并想要长期发展选数字后端还是ic验证?” 这是知乎上的一个热点问题,浏览量达到了13,183。看来有不少同学对这个问题感到疑惑。之前更新了数字后端&数字验证的诸多文章,从学习到职业发展,都写过,唯一没有做过…...

当服务器域名出现解析错误的问题该怎么办?
域名解析是互联网用户接收他们正在寻找的域的地址的过程。更准确地说,域名解析是人们在浏览器中输入时使用的域名与网站IP地址之间的转换过程。您需要站点的 IP 地址才能知道它所在的位置并加载它。但,在这个过程中,可能会出现多种因素…...

面试必考精华版Leetcode2095. 删除链表的中间节点
题目: 代码(首刷看解析 day22): class Solution { public:ListNode* deleteMiddle(ListNode* head) {if(head->nextnullptr) return nullptr;ListNode *righthead;ListNode *lefthead;ListNode *NodeBeforeLeft;while(right!n…...