QSpinBoxの使用説明

序章

QSpinBoxを使用すると、ユーザーは上/下ボタンをクリックするか、キーボードの上/下を押して現在表示されている値を増減することにより、値を調整できます。ユーザーは手動で値を入力することもできます。整数にはQSpinBoxを使用し、浮動小数点値にはQDoubleSpinBoxを使用します。

一般的なAPI

最小値を設定する

void setMinimum()

最大値を設定する

void setMaximum();

現在の値を設定

void setValue();

セット精度

  void setDecimals()

ステップを設定します

void setSingleStep();

プレフィックスを設定する

void setSuffix();

接尾辞を設定する

 void setPrefix()

値変更信号

void valueChanged(int i)
void valueChanged(const QString &text)

このクラスでは、シグナルvalueChangedがオーバーロードされていることに注意してください。関数ポインタ構文を使用してこのシグナルに接続するには、次の例に示すように、static_castを使用してポインタをキャストする必要があります。

    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){
    
    
       /* ... */ 
       });

効果の例:

ここに画像の説明を挿入
.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;
}

UIレイアウト
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44901043/article/details/123747173