Qt QSpinBox微调框控件

文章目录

  • 1 属性和方法
    • 1.1 值
    • 1.2 步长
    • 1.3 循环
    • 1.4 加速
    • 1.5 前缀和后缀
    • 1.6 信号和槽
  • 2 实例
    • 2.1 布局
    • 2.2 代码实现

微调框,允许用户按照一定的步长,来增加或减少其中显示的数值

修改微调框数值的方式包括:

  • 单击右侧的向上/向下按钮
  • 按键盘的向上/向下键
  • 微调框获取焦点时,通过鼠标滚轮的上下滚动
  • 当然了,也允许用户手动输入

其中 :

  • SpinBox-用于整数的显示和输入
  • DoubleSpinBox-用于浮点数的显示和输入

它们都是QAbstractSpinBox的子类,具有大多数相同的属性,只是参数类型不同(一个int,一个double)

1 属性和方法

QSpinBox有很多属性,完整的可查看帮助文档。这里以QSpinBox为例,列出常用的属性和方法:

1.1 值

微调框和值相关的属性包括:当前值、最大值、最小值

// 获取和设置当前值
int value() const;
void setValue(int val);// 获取和设置最大值
int maximum() const;
void setMaximum(int max);// 获取和设置最小值
int minimum() const;
void setMinimum(int min);// 一次设置最大值和最小值
void setRange(int minimum, int maximum);

1.2 步长

步长是指按右侧上下调整按钮时的单步改变值,也就是按一次,增加或减少的值

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

1.3 循环

wrapping 属性用于设置是否允许循环

比如范围设置为0-99

  • 当数值达到99时,再点击向上的按钮,此时数值会变为0
  • 数值达到0时,再点击向下的按钮,此时数值会变为99
// 获取和设置是否允许循环
bool warpping() const;
void serWrapping(bool w);

1.4 加速

用于设置数值增加和减少的速度

如果设置为true,随着长按向上/向下箭头时间的增加,数值会加速增加/减少。

// 获取和设置是否允许加速
bool isAccelerated() const;
void serAccelerated(bool on);

1.5 前缀和后缀

用于设置微调框的前缀和后缀显示

比如,如果微调框中显示的是重量,可以添加一个KG的后缀,如果微调框中显示的是单价,可以添加一个的前缀

// 获取和设置前缀
QString prefix() const;
void serPrefix(const QString &prefix);// 获取和设置后缀
QString suffix() const;
void setSuffix(const QString &suffix);

1.6 信号和槽

当微调框中的数值发生变化时,会发射valueChanged信号

void valueChanged(int i);

2 实例

该案例演示,当单价和重量变化时,实时显示计算出的总价

在这里插入图片描述

2.1 布局

在Ul设计师界面,拖拽对应的控件,修改显示的文字、控件的name,然后完成布局

在这里插入图片描述

2.2 代码实现

// 在Widget中
#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 1. 设置单价ui->dsbPrice->setMaximum(99.99);ui->dsbPrice->setMinimum(1.00);// ui->dsbPrice->setRange(1.00, 99.99);// 设置前缀ui->dsbPrice->setPrefix("¥");// 设置步长ui->dsbPrice->setSingleStep(0.50);// 设置加速ui->dsbPrice->setAccelerated(true);// 设置到了最后再增加就回到初始值ui->dsbPrice->setWrapping(true);// 1. 设置重量ui->sbWeight->setMaximum(200);ui->sbWeight->setMinimum(100);// 设置前缀ui->sbWeight->setSuffix(" KG");// 设置步长ui->sbWeight->setSingleStep(1);// 设置加速ui->sbWeight->setAccelerated(true);// 设置到了最后再增加就回到初始值ui->sbWeight->setWrapping(true);
}Widget::~Widget() {delete ui;
}void Widget::on_dsbPrice_valueChanged(double arg1) {double price = arg1;int weight = ui->sbWeight->value();ui->leTotal->setText(QString::number(price * weight));
}void Widget::on_sbWeight_valueChanged(int arg1) {int weight = arg1;double price = ui->dsbPrice->value();ui->leTotal->setText(QString::number(weight * price));
}

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

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

相关文章

LINUX——动/静态库

加油加油~ 目录: 动/静态库是什么? .o文件是什么? 以gcc编译器为例,查看xxx.i xxx.s xxx.o文件 生成test.i文件(预处理) 生成test.s文件(编译) 生成test.o文件(汇编) 生成可执行程序(链接): 小结&#xff1a…

Git 基础指令

Git 基础指令 本章涵盖了我们在使用 Git 完成各种操作时将会用到的各种基本命令。 在学习完本章之后,我们应该能够配置并初始化一个仓库(repository)、开始或停止跟踪(track)文件、暂存(stage)…

模拟数字转换器

本节主要介绍以下内容: ADC简介 ADC功能框图详解 参考资料:《零死角玩转STM32》“ADC—电压采集”章节 一、ADC简介 ADC :Analog to Digital,模拟数字转换器 三个独立的ADC 1 / 2 / 3分辨率为12位每个ADC具有18个通道,其中…

代码随想录刷题笔记(DAY 10)

今日总结:快要期末考试了,现在在疯狂速成,今天稍微缓和了一点,应该能保证继续每天刷题,欠下的那些寒假补上。 Day 10 01. 用栈实现队列(No. 232) 题目链接 代码随想录题解 1.1 题目 请你仅…

AcWing1210-连号区间

文章目录 题目输入格式输出格式数据范围样例输入样例1输出样例1输入样例2输出样例2样例解释 思路代码 题目 输入格式 输出格式 数据范围 样例 输入样例1 4 3 2 4 1 输出样例1 7 输入样例2 5 3 4 2 5 1 输出样例2 9 样例解释 思路 固定L,遍历R在[L,R]区域中找到最大…

参数小,性能强!开源多模态模型—TinyGPT-V

安徽工程大学、南洋理工大学和理海大学的研究人员开源了多模态大模型——TinyGPT-V。 TinyGPT-V以微软开源的Phi-2作为基础大语言模型,同时使用了视觉模型EVA实现多模态能力。尽管TinyGPT-V只有28亿参数,但其性能可以媲美上百亿参数的模型。 此外&…

仿蓝奏云网盘 /file/list SQL注入漏洞复现

0x01 产品简介 仿蓝奏网盘是一种类似于百度网盘的文件存储和共享解决方案。它为用户提供了一个便捷的平台,可以上传、存储和分享各种类型的文件,方便用户在不同设备之间进行文件传输和访问。 0x02 漏洞概述 仿蓝奏云网盘 /file/list接口处存在SQL注入漏洞,登录后台的攻击…

Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEvent

文章目录 Pre概述Code源码分析 Pre Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEvent 概述 Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦&#…

RabbitMQ入门到实战——高级篇

消息的可靠性 生产者的可靠性(确保消息一定到达MQ) 生产者重连 这⾥除了enabled是false外,其他 initial-interval 等默认都是⼀样的值。 生产者确认 生产者确认代码实现 application中增加配置:(publisher-returns…

《MySQL系列-InnoDB引擎06》MySQL锁介绍

文章目录 第六章 锁1 什么是锁2 lock与latch3 InnoDB存储引擎中的锁3.1 锁的类型3.2 一致性非锁定读3.3 一致性锁定读3.4 自增长与锁3.5 外键和锁 4 锁的算法4.1 行锁的三种算法4.2 解决Phantom Problem 5 锁问题5.1 脏读5.2 不可重复读5.3 丢失更新 6 阻塞7 死锁 第六章 锁 开…

深度解析Cron表达式:精确控制任务调度的艺术

深度解析Cron表达式:精确控制任务调度的艺术 希望我们都可以满怀期待的路过每一个转角 去遇见 那个属于自己故事的开始 去追寻那个最真实的自己 去放下 去拿起 安然,自得,不受世俗牵绊… 导言 在计算机科学领域,任务调度是一项关…

【PyQt5设计】:自动点击神器 - 解决重复性的点击和输入操作

文章目录 自动点击神器介绍测试窗口介绍自动点击神器的使用教程资源领取注意事项 自动点击神器介绍 本次使用PyQt5设计的【自动点击神器】旨在解决重复性的点击工作,解放双手,具有及时性和准确性,可选择坐标位置或图片两种方式实现鼠标的定位…

横版动作闯关游戏:幽灵之歌 GHOST SONG 中文版

在洛里安荒凉的卫星上,一件长期休眠的死亡服从沉睡中醒来。踏上发现自我、古老谜团和宇宙骇物的氛围2D冒险之旅。探索蜿蜒的洞穴,获得新的能力来揭开这个外星世界埋藏已久的秘密。 游戏特点 发现地下之物 探索这个广阔而美丽如画,充满密室和诡…

一个常用的项目架构图

给大家分享一个常用的架构图,需要使用的可以免费那走: 用户通过公网IP或者域名访问,穿过防火墙后,映射到nginx组件,在反向代理到各个模块;资源放在Nas盘,数据放在各个中间件;各个模块…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin 手指在上面的图上移动,“剪切”出上面图中以手指触点为中心的图(半径图),然后在下面的ImageView显示。 impor…

中国大学生计算机设计大赛—人工智能实践赛赛道—赛后感想

1.比赛介绍 中国大学生计算机设计大赛是我国高校面向本科生最早的赛事之一,是全国普通高校大学生竞赛排行榜榜单赛事之一。自2008年开赛至2019年,一直由教育部高校与计算机相关教指委等或独立或联合主办。大赛的目的是以赛促学、以赛促教、以赛促创&…

【技能拾遗】——如何寻找/制作电子书

📖 前言:无纸化学习已经越来越流行了,尤其是这几年大家上网课,把厚厚的课本和笔记装进pad里面,其便利性想必大家都深有感受。但是还有不少同学不知道该如何去找正规教材的PDF版本,下面就以我这两年的无纸化…

RTL编码(1)——概述

一、RTL级描述 RTL(Register Transfer Level)级:寄存器+组合逻辑,其功能与时序用Verilog HDL(以下简称Verilog)或VHDL代码描述。 RTL描述包含了同步数字电路最重要的三个特征:组合逻…

外贸自建站新手教程指南?海洋建站的技巧?

外贸自建站怎么做比较好?搭建外贸网站的参数有哪些? 外贸自建站成为许多企业迈向国际市场的重要一步。随着全球经济的不断发展,搭建一个专业而有效的外贸自建站对企业而言至关重要。海洋建站将为您提供一份详尽的新手教程指南,帮…

通过Studio 3T对Mongodb进行 创建数据库/集合 增删查改集合文档操作

首先 你需要安装Studio 3T 以及启动 Mongodb服务 具体可以参考我的文章 Studio 3T客户端连接Mongodb数据库服务 我们之前 通过 use 数据库名随便输切换是可以的 但除了这里能看到的 它们都仅存在于内存 我们右键顶部菜单 选择 添加数据库/创建数据库 这里 我们输入数据库名称…