作用:允许用户按照一定的步长,来增加或减少其中显示的数值
有两种类型的微调框
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() const
void 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_OBJECT
public:
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