Introducción
QSpinBox permite al usuario ajustar un valor haciendo clic en los botones arriba/abajo o presionando arriba/abajo en el teclado para aumentar/disminuir el valor que se muestra actualmente. Los usuarios también pueden ingresar valores manualmente. Use QSpinBox para números enteros y QDoubleSpinBox para valores de coma flotante.
API comunes
establecer el valor mínimo
void setMinimum()
establecer el valor máximo
void setMaximum();
establecer el valor actual
void setValue();
establecer precisión
void setDecimals()
establecer paso
void setSingleStep();
establecer prefijo
void setSuffix();
establecer sufijo
void setPrefix()
señal de cambio de valor
void valueChanged(int i)
void valueChanged(const QString &text)
Tenga en cuenta que la señal valueChanged está sobrecargada en esta clase. Para conectarse a esta señal usando la sintaxis del puntero de función, debe emitir el puntero usando static_cast, como se muestra en el siguiente ejemplo:
connect(ui->spinBox, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),
[=](int i){
/* ... */
});
connect(ui->doubleSpinBox, static_cast<void(QDoubleSpinBox::*)(const QString &)>(&QDoubleSpinBox::valueChanged),
[=](const QString &text){
/* ... */
});
Efecto de ejemplo:
archivo .h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//设置后缀
ui->spinBox->setPrefix(QStringLiteral("$"));
//设置最小值
ui->spinBox->setMinimum(0);
//设置最大值
ui->spinBox->setMaximum(1000);
//设置当前值
ui->spinBox->setValue(40);
//设置步距
ui->spinBox->setSingleStep(1);
//设置前缀
ui->doubleSpinBox->setSuffix(QStringLiteral("℃"));
//设置最小值
ui->doubleSpinBox->setMinimum(-100);
//设置最大值
ui->doubleSpinBox->setMaximum(50);
//设置当前值
ui->doubleSpinBox->setValue(26.7);
//设置步距
ui->doubleSpinBox->setSingleStep(0.1);
//设置精度
ui->doubleSpinBox->setDecimals(2);
connect(ui->spinBox, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),
[=](int i){
QString str = QString("QSpinBox value changed:%1").arg(i);
ui->textEdit->append(str);
});
connect(ui->doubleSpinBox, static_cast<void(QDoubleSpinBox::*)(const QString &)>(&QDoubleSpinBox::valueChanged),
[=](const QString &text){
QString str = QString("QDoubleSpinBox value changed:%1").arg(text);
ui->textEdit->append(str);
});
}
Widget::~Widget()
{
delete ui;
}
diseño de la interfaz de usuario