【Qt 学习笔记】Qt常用控件 | 输入类控件 | Spin Box的使用及说明


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt常用控件 | 输入类控件 | Spin Box的使用及说明

文章编号:Qt 学习笔记 / 31


一、QSpinBox介绍

1. 简介

使用 QSpinBox 或者 QDoubleSpinBox 表示 “微调框”, 它是带有按钮的输入框. 可以用来输⼊整数/浮点数. 通过点击按钮来修改数值大小

QSpinBox提供了一个文本框和两个按钮,一个用于增加值,一个用于减小值。用户可以通过点击按钮或者直接在文本框中输入数值来改变值。QSpinBox还可以设置最小值和最大值的范围,并且可以选择逐步增加或逐步减少的步长。

在这里插入图片描述

2. 核心属性及说明

属性说明
value存储的数值.
singleStep每次调整的 “步长”. 按下⼀次按钮数据变化多少.
displayInteger数字的进制
例如 displayInteger 设为 10, 则是按照 10 进制表⽰. 设为 2 则为 2进制表⽰.
minimum最小值
maximum最大值
buttonSymbol按钮上的图标
UpDownArrows 上下箭头形式
PlusMinus 加减号形式
NoButtons 没有按钮
accelerated (加速的)按下按钮时是否为快速调整模式
correctionMode输入有误时如何修正
QAbstractSpinBox::CorrectToPreviousValue : 如果⽤⼾输⼊了⼀个⽆效的值(例如,在只能显⽰正整数的SpinBox中输⼊了负数),那么SpinBox会恢复为上⼀个有效值。例如,如果SpinBox的初始值是1,⽤⼾输⼊了-1(⽆效),然后SpinBox会恢复为1。
QAbstractSpinBox::CorrectToNearestValue : 如果⽤⼾输⼊了⼀个⽆效的值,SpinBox会恢复为最接近的有效值。例如,如果SpinBox的初始值是1,⽤⼾输⼊了-1(⽆效),那么SpinBox会恢复为0。
keyboardTrack是否开启键盘跟踪
设为 true, 每次在输⼊框输⼊⼀个数字, 都会触发⼀次 valueChanged() 和textChanged() 信号.设为 false, 只有在最终按下 enter 或者输⼊框失去焦点, 才会触发valueChanged() 和 textChanged() 信号

3. 核心信号及说明

信号说明
textChanged(QString)微调框的⽂本发⽣改变时会触发.
参数 QString 带有 前缀 和 后缀.
valueChanged(int)微调框的⽂本发⽣改变时会触发.
参数 int, 表⽰当前的数值.

二、QSpinBox的使用(代码示例)

1. 实现购物份数(微调)界面

  1. 在界面中创建三个下拉框、三个微调框、⼀个按钮
    在这里插入图片描述
    在这里插入图片描述
  2. 编写widget.cpp,给下拉框设置初始值为1
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //添加下拉框选项
    ui->comboBox->addItem("百事可乐");
    ui->comboBox->addItem("雪碧");
    ui->comboBox_2->addItem("旺旺雪饼");
    ui->comboBox_2->addItem("卫龙辣条");
    ui->comboBox_3->addItem("狐狸红酒");
    ui->comboBox_3->addItem("江小白");

    //设置微调框初始值
    ui->spinBox->setValue(1);
    ui->spinBox_2->setValue(1);
    ui->spinBox_3->setValue(1);

    //设置微调框范围
    ui->spinBox->setRange(1,5);
    ui->spinBox_2->setRange(1,5);
    ui->spinBox_3->setRange(1,5);
}
  1. 编写代码,编写按钮槽函数
void Widget::on_pushButton_clicked()
{
    qDebug()<<"当前已经购买的商品:"<<endl
           <<ui->comboBox->currentText()<<"数量为:"<<ui->spinBox->value()<<endl
           <<ui->comboBox_2->currentText()<<"数量为:"<<ui->spinBox_2->value()<<endl
           <<ui->comboBox_3->currentText()<<"数量为:"<<ui->spinBox_3->value();
}
  1. 执行代码,点击按钮就能获取到对应的结果,点击按钮就能获取到对应的结果在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 33
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Duck Bro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值