【Qt】输入类控件QSpinBox的属性

 

目录

 输入类控件QSpinBox的属性

例子:调整购物车中的份数


输入类控件QSpinBox的属性

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

QSpinBox表示修改整数,QDoubleSpinBox表示修改浮点数,下面主要对QSpinBox进行讲述。

关键属性

属性说明

value

存储的数值

singleStep

每次调整的 "步⻓". 按下⼀次按钮数据变化多少

displayInteger

数字的进制. 例如 displayInteger 设为 10, 则是按照 10 进制表⽰. 设为 2 则为 2 进制表⽰

minimum

最小值

maximum

最⼤值

suffix

后缀

prefix

前缀

wrapping

是否允许换⾏

frame

是否带边框

alignment

⽂字对⻬⽅式

readOnly

是否允许修改

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() 信号

核心信号

信号说明

textChanged(QString)

微调框的⽂本发⽣改变时会触发.

参数 QString 带有 前缀 和 后缀.

valueChanged(int)

微调框的⽂本发⽣改变时会触发.

参数 int, 表⽰当前的数值.

例子:调整购物车中的份数

(1)创建三个下拉框、三个微调框、三个标签、一个按钮

(2)初始化下拉框、微调框

(3)给按钮添加slot函数

widget.cpp代码实现:
 

#include "widget.h"
#include "ui_widget.h"

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->spinBox->setRange(1, 10);
    ui->spinBox_2->setRange(1, 10);
    ui->spinBox_3->setRange(1, 10);
    ui->spinBox->setValue(1);
    ui->spinBox_2->setValue(1);
    ui->spinBox_3->setValue(1);

}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    ui->label_4->setText("您购买的套餐为:"
                       + ui->comboBox->currentText() + "一共 " + QString::number(ui->spinBox->value()) + " 份" + ", \n"
                       + ui->comboBox_2->currentText() + "一共 " + QString::number(ui->spinBox_2->value()) + " 份" + ", \n"
                       + ui->comboBox_3->currentText() + "一共 " + QString::number(ui->spinBox_3->value()) + " 份" + ", \n"
                       + "谢谢你的购买!!");
}

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值