作用:允许用户按照一定的步长,来增加或减少其中显示的数值
有两种类型的微调框
QSpinBox
- 用于整数的显示和输入QDoubleSpinBox
- 用于浮点数的显示和输入
值
包括最大值、最小值、当前值
// 获取和设置当前值
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)
步长
即点击上下调整按钮时的单步改变值,就是点击一次,增加或减少的值
// 获取和设置步长int singleStep() constvoid setSingleStep(int val)
循环
即数值达到最大值时,继续点击增加,值会回到最小
数值达到最小值时,点击减少,值会回到最大
// 获取和设置是否允许循环
bool wrapping() const
void setWrapping(bool w)
加速
即长按增加/减少按钮时,数值会快速的的增加/减少
// 获取和设置是否允许加速
bool isAccelerated() const
void setAccelerated(bool on)
前缀/后缀
可以设置微调框中显示前缀或者后缀
比如微调框中表示重量,则可以加一个KG的后缀
// 获取和设置前缀
QString prefix() const
void setPrefix(const QString &prefix)// 获取和设置后缀
QString suffix() const
void setSuffix(const QString &suffix)
常用信号
//数值改变时发射
void valueChanged(int i)
举例
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QLabel>
#include<QSpinBox>
#include<QGridLayout>
#include<QMessageBox>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr):QWidget(parent){resize(300,300);QGridLayout* grid=new QGridLayout(this);QLabel* lbl1=new QLabel("身高:",this);lbl1->setFixedSize(50,50);height=new QSpinBox(this);height->setRange(150,195);//设置范围height->setWrapping(true);//设置可以循环height->setSuffix("cm");//设置后缀height->setAccelerated(true);//设置加速height->setSingleStep(1);//设置步长grid->addWidget(lbl1,0,0);grid->addWidget(height,0,1);QLabel* lbl2=new QLabel("体重:",this);lbl2->setFixedSize(50,50);weight=new QSpinBox(this);weight->setRange(45,100);//设置范围weight->setWrapping(true);//设置可以循环weight->setSuffix("kg");//设置后缀weight->setAccelerated(true);//设置加速weight->setSingleStep(1);//设置步长grid->addWidget(lbl2,1,0);grid->addWidget(weight,1,1);//绑定槽函数connect(height,&QSpinBox::valueChanged,this,&Widget::onValueChange);connect(weight,&QSpinBox::valueChanged,this,&Widget::onValueChange);}~Widget()=default;
private:void onValueChange(){QString str_text="身高"+QString::number(height->value())+"cm,体重"+QString::number(weight->value())+"kg";QMessageBox::information(this,"",str_text);}QSpinBox* height;QSpinBox* weight;
};
#endif // WIDGET_H
学习链接:https://github.com/0voice