Explicación de uso de QSpinBox

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:

inserte la descripción de la imagen aquí
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
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44901043/article/details/123747173
Recomendado
Clasificación