- 博客主页:Duck Bro 博客主页
- 系列专栏:Qt 专栏
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
Qt常用控件 | 输入类控件 | Spin Box的使用及说明
文章编号:Qt 学习笔记 / 31
文章目录
- Qt常用控件 | 输入类控件 | Spin Box的使用及说明
- 一、QSpinBox介绍
- 1. 简介
- 2. 核心属性及说明
- 3. 核心信号及说明
- 二、QSpinBox的使用(代码示例)
- 1. 实现购物份数(微调)界面
一、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. 实现购物份数(微调)界面
- 在界面中创建三个下拉框、三个微调框、⼀个按钮
- 编写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);
}
- 编写代码,编写按钮槽函数
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();
}
- 执行代码,点击按钮就能获取到对应的结果,点击按钮就能获取到对应的结果