このページでは

QDoubleSpinBox Class

QDoubleSpinBox クラスは、double 型の値を受け付けるスピンボックスウィジェットを提供します。詳細...

ヘッダー: #include <QDoubleSpinBox>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元: QAbstractSpinBox

プロパティ

パブリック関数

QDoubleSpinBox(QWidget *parent = nullptr)
virtual ~QDoubleSpinBox()
QString cleanText() const
int decimals() const
double maximum() const
double minimum() const
QString prefix() const
void setDecimals(int prec)
void setMaximum(double max)
void setMinimum(double min)
void setPrefix(const QString &prefix)
void setRange(double minimum, double maximum)
void setSingleStep(double val)
void setStepType(QAbstractSpinBox::StepType stepType)
void setSuffix(const QString &suffix)
double singleStep() const
QAbstractSpinBox::StepType stepType() const
QString suffix() const
virtual QString textFromValue(double value) const
double value() const
virtual double valueFromText(const QString &text) const

再実装されたパブリック関数

virtual void fixup(QString &input) const override
virtual QValidator::State validate(QString &text, int &pos) const override

パブリックスロット

void setValue(double val)

シグナル

void textChanged(const QString &text)
void valueChanged(double d)

詳細な説明

ダブルを表示するスピンボックス

QDoubleSpinBox を使用すると、ユーザーは「上」ボタンや「下」ボタンをクリックするか、キーボードの「上」キーや「下」キーを押して、現在表示されている値を増減させることができます。また、ユーザーは値を手動で入力することも可能です。このスピンボックスは double 型の値をサポートしていますが、validate()、textFromValue()、valueFromText() を使用することで、異なる文字列を使用するように拡張することも可能です。

値が変更されるたびに、QDoubleSpinBoxはvalueChanged()およびtextChanged()シグナルを発行します。前者はdouble型、後者はQString 型を提供します。textChanged()シグナルは、prefix()およびsuffix()の両方の値を提供します。現在の値はvalue()で取得し、setValue()で設定できます。

注:QDoubleSpinBoxは、現在の精度で数値が表示されるよう、数値を丸めます。小数点以下の桁数を2に設定したQDoubleSpinBoxにおいて、setValue(2.555)を呼び出すと、value()は2.56を返します。

上下ボタンをクリックするか、キーボードショートカットの上矢印キーおよび下矢印キーを使用すると、singleStep() で指定されたステップサイズ分だけ現在の値が増減します。 この動作を変更したい場合は、仮想関数 `stepBy()` を再実装することができます。最小値、最大値、およびステップサイズは、コンストラクタのいずれかを使用して設定でき、後で `setMinimum()`、`setMaximum()`、および `setSingleStep()` を使用して変更できます。スピンボックスのデフォルトの精度は小数点以下2桁ですが、これは `setDecimals()` を使用して変更できます。

ほとんどのスピンボックスは方向性がありますが、QDoubleSpinBoxは循環型スピンボックスとしても動作します。つまり、範囲が0.0~99.9で現在の値が99.9の場合、wrapping()がtrueに設定されていれば、「上」をクリックすると0になります。 循環動作を望む場合は、setWrapping() を使用してください。

表示される値の前後に、通貨や測定単位などを示す任意の文字列を追加することができます。setPrefix() およびsetSuffix() を参照してください。スピンボックス内のテキストは、text()(prefix() およびsuffix() の出力を含む)またはcleanText()(prefix()、suffix()、および先頭や末尾の空白を含まない)で取得できます。

多くの場合、数値の範囲に加えて、ユーザーに特別な(多くの場合デフォルトの)選択肢を提供することが望ましいです。QDoubleSpinBoxでこれを実現する方法については、setSpecialValueText()を参照してください。

注: QDoubleSpinBoxの表示値は 、前置および後置のコンテンツを除き、18文字に制限されています。この制限は、非常に大きな値の場合でもダブルスピンボックスが使用可能であるようにするためのものです。

関連項目: QSpinBox 、QDateTimeEdit 、QSlider 、および「スピンボックスの例」。

プロパティのドキュメント

[read-only] cleanText : QString

このプロパティには、プレフィックス、サフィックス、および先頭または末尾の空白を除いたスピンボックスのテキストが格納されます。

アクセス関数:

QString cleanText() const

関連項目: text 、QDoubleSpinBox::prefix 、およびQDoubleSpinBox::suffixを参照してください 。

decimals : int

このプロパティは、スピンボックスの精度(小数点以下の桁数)を指定します

スピンボックスがdouble型の数値を表示および解釈する際に使用する小数点以下の桁数を設定します。

警告: double型の制限により、decimals の最大値は DBL_MAX_10_EXP + DBL_DIG(つまり323)となります。

注:このプロパティを変更すると、最大値、最小値、および値が変更される場合があります。

アクセス関数:

int decimals() const
void setDecimals(int prec)

maximum : double

このプロパティには、スピンボックスの最大値が格納されます

このプロパティを設定すると、範囲が有効な状態を維持できるよう、必要に応じてminimum が調整されます。

デフォルトの最大値は 99.99 です。

注:最大値は、decimals プロパティに合わせて四捨五入されます。

アクセス関数:

double maximum() const
void setMaximum(double max)

関連項目: decimals およびsetRange()。

minimum : double

このプロパティには、スピンボックスの最小値が格納されます

このプロパティを設定すると、範囲が有効な状態を維持できるよう、必要に応じてmaximum が調整されます。

デフォルトの最小値は 0.0 です。

注:最小値は、decimals プロパティに合わせて四捨五入されます。

アクセス関数:

double minimum() const
void setMinimum(double min)

関連項目: decimals 、setRange()、およびspecialValueText 。

prefix : QString

このプロパティは、スピンボックスの接頭辞を指定します

このプレフィックスは、表示される値の先頭に付加されます。一般的な用途として、測定単位や通貨記号を表示することが挙げられます。例:

spinbox->setPrefix("$");

接頭辞の表示を無効にするには、このプロパティを空の文字列に設定します。デフォルトでは接頭辞は表示されません。value() ==minimum() であり、かつspecialValueText() が設定されている場合、接頭辞は表示されません。

プレフィックスが設定されていない場合、prefix() は空文字列を返します。

アクセス関数:

QString prefix() const
void setPrefix(const QString &prefix)

関連項目: suffix()、setSuffix()、specialValueText()、およびsetSpecialValueText()。

singleStep : double

このプロパティにはステップ値が格納されます

ユーザーが矢印キーを使用してスピンボックスの値を変更すると、その値は singleStep の値だけ増減します。デフォルト値は 1.0 です。singleStep の値を 0 未満に設定しても、何の効果もありません。

アクセス関数:

double singleStep() const
void setSingleStep(double val)

stepType : StepType

このプロパティはステップタイプを保持します。

ステップタイプは、シングルステップまたは適応型小数ステップのいずれかです。

アクセス関数:

QAbstractSpinBox::StepType stepType() const
void setStepType(QAbstractSpinBox::StepType stepType)

suffix : QString

このプロパティは、スピンボックスの接尾辞を保持します

接尾辞は、表示される値の末尾に付加されます。一般的な用途としては、測定単位や通貨記号を表示することが挙げられます。例:

spinbox->setSuffix(" km");

サフィックスの表示を無効にするには、このプロパティを空の文字列に設定します。デフォルトはサフィックスなしです。specialValueText() が設定されている場合、minimum() ではサフィックスは表示されません。

接尾辞が設定されていない場合、suffix()は空の文字列を返します。

アクセス関数:

QString suffix() const
void setSuffix(const QString &suffix)

関連項目: prefix()、setPrefix()、specialValueText()、およびsetSpecialValueText()。

value : double

このプロパティには、スピンボックスの値が格納されます

setValue() は、新しい値が古い値と異なる場合、valueChanged() を発行します。value プロパティには、スピンボックスの接頭辞と接尾辞を含む 2 つ目の通知シグナルがあります。

注:値は、現在の小数点以下の桁数設定に合わせて表示できるよう、四捨五入されます。

アクセス関数:

double value() const
void setValue(double val)

通知シグナル:

void valueChanged(double d)

decimalsも参照してください 。

メンバ関数のドキュメント

[explicit] QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = nullptr)

最小値 0.0、最大値 99.99、ステップ値 1.0、小数点以下 2 桁の精度を持つスピンボックスを作成します。値は初期状態で 0.00 に設定されます。このスピンボックスには、指定されたparent が適用されます。

setMinimum()、setMaximum()、およびsetSingleStep()も参照してください 。

[virtual noexcept] QDoubleSpinBox::~QDoubleSpinBox()

デストラクタ。

[override virtual] void QDoubleSpinBox::fixup(QString &input) const

QAbstractSpinBox::fixup (QString &input)const の再実装。

void QDoubleSpinBox::setRange(double minimum, double maximum)

minimum およびmaximum の値を、1回の関数呼び出しで設定できる便利な関数です。

注:最大値と最小値は、decimals プロパティに合わせて四捨五入されます。

setRange(minimum, maximum);

これは以下と同等です:

setMinimum(minimum);
setMaximum(maximum);

「 minimum 」および「maximum 」も参照してください 。

void QDoubleSpinBox::setStepType(QAbstractSpinBox::StepType stepType)

スピンボックスのステップタイプを「stepType 」に設定します。これは、シングルステップまたは適応型小数ステップです。

適応型小数ステップとは、ステップサイズが現在のvalue より10の累乗分だけ小さい値に継続的に調整されることを意味します。したがって、値が1100の場合、ステップは100に設定されるため、1回ステップアップすると1200になります。1200の場合、ステップアップすると1300になります。 負の値の場合、-1100からステップダウンすると-1200になります。

小数値に対しても同様に機能し、0.041は1ステップ増加すると0.042になります。

境界ケースを適切に処理するため、ステップの方向が考慮されます。したがって、100からステップダウンすると、値は90ではなく99になります。これにより、ステップアップの後にステップダウン(またはその逆)を行っても、常に開始値に戻ります(例:99 → 100 → 99)。

これを設定すると、スピンボックスはsingleStep の値を無視するようになりますが、その値は保持されるため、後で適応型小数ステップがオフにされた場合、singleStep が有効になります。

注: プロパティ `stepType`のセッター 関数です。

stepType()も参照してください 。

[signal] void QDoubleSpinBox::textChanged(const QString &text)

このシグナルは、スピンボックスのテキストが変更されるたびに発火します。新しいテキストは、`prefix()` および `suffix()` を通じて `text ` に渡されます。

[virtual] QString QDoubleSpinBox::textFromValue(double value) const

この仮想関数は、スピンボックスが指定されたvalue を表示する必要があるたびに使用されます。デフォルトの実装は、QWidget::locale()を使用してvalue を出力した文字列を返します。toString(value,u'f',decimals())が実行され、setGroupSeparatorShown()が設定されていない限り、千の位区切り記号が削除されます。再実装では、任意の値を返すことができます。

注:QDoubleSpinBox は、specialValueText()に対してこの関数を呼び出しません。また、prefix()もsuffix()も、戻り値に含めてはなりません。

これを再実装する場合は、valueFromText() も再実装する必要がある場合があります。

valueFromText() およびQLocale::groupSeparator()も参照してください 。

[override virtual] QValidator::State QDoubleSpinBox::validate(QString &text, int &pos) const

QAbstractSpinBox::validate(QString &input, int &pos) const を再実装します。

[signal] void QDoubleSpinBox::valueChanged(double d)

このシグナルは、スピンボックスの値が変更されるたびに発火します。新しい値は `d` に渡されます。

注: value プロパティの通知 シグナルです。

[virtual] double QDoubleSpinBox::valueFromText(const QString &text) const

この仮想関数は、ユーザーがtext に入力した内容を値として解釈する必要がある場合に、スピンボックスによって使用されます。

スピンボックスの値を数値以外の形式で表示する必要があるサブクラスは、この関数を再実装する必要があります。

注:QDoubleSpinBox は、specialValueText() を個別に処理します。この関数は、それ以外の値のみを対象としています。

textFromValue() およびvalidate()も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.