文章目录
- QSpinBox核心属性及信号
- 点餐示例
QSpinBox核心属性及信号
QSpinBox
或者QDoubleSpinBox
表示微调框,带有按钮的输入框,可以用来输入整数/浮点数或者通过点击按钮调整数值大小
QSpinBox
和QDoubleSpinBox
用法基本相同,本篇以QSpinBox
为例
核心属性
核心属性 | 说明 |
---|---|
value | 存储的数值 |
singleStep | 每次调整的“步长”(按一下按钮调整多少) |
displayInteger | 数字的进制 |
minimum | 最小值 |
maximum | 最大值 |
suffix | 后缀 |
prefix | 前缀 |
wrapping | 是否允许换行 |
frame | 是否允许边框 |
alignment | 文字对齐方式 |
readOnly | 是否允许修改 |
buttonSymbol | 按钮上的图标:UpDownArrows 上下箭头形式PlusMinus 加减号形式NoButtons 没有按钮 |
accelerated | 按下按钮时是否为快速调整模式 |
corretionMode | 输入有误时,如何修正:QAbstractSpinBox::CorrectToPreviousValue :如果输入无效值,恢复到上一个有效值QAbstractSpinBox::CorrectToNearestValue :如果输入无效值,恢复到接近有效的值 |
keyboardTrack | 是否开启键盘跟踪:true :每次在输入框输入一个数字,都会触发一次valueChanged() 和textChanged() 信号false :只有在最终按下enter或者输入框失去焦点时,才会触发valueChanged() 和textChanged() |
核心信号:
信号 | 说明 |
---|---|
textChanged(QString) | 微调框的文本发生变化的时候触发 参数QString带有前缀和后缀 |
valueChanged(int) | 微调框的文本发生改变时触发 参数int表示当前数值 |
点餐示例
通过下拉框选择食物种类,通过微调框选择数量
界面设置:
代码示例:
#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//初始化下拉菜单
ui->comboBox->addItem("米饭");
ui->comboBox->addItem("馒头");
ui->comboBox->addItem("面包");
ui->comboBox_2->addItem("鱼香肉丝");
ui->comboBox_2->addItem("红烧排骨");
ui->comboBox_2->addItem("香辣鱿鱼");
ui->comboBox_3->addItem("紫菜汤");
ui->comboBox_3->addItem("绿豆汤");
ui->comboBox_3->addItem("玉米汤");
//设定spinBox范围
ui->spinBox->setRange(1,5);
ui->spinBox_2->setRange(1,5);
ui->spinBox_3->setRange(1,5);
ui->spinBox->setValue(1);
ui->spinBox_2->setValue(1);
ui->spinBox_3->setValue(1);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()
{
qDebug() << "订单内容: "
<< ui->comboBox->currentText() << ":" << ui->spinBox->value()
<< ui->comboBox_2->currentText() << ":" << ui->spinBox_2->value()
<<ui->comboBox_3->currentText() << ":" << ui->spinBox_3->value();
}