QDoubleSpinBox Class

QDoubleSpinBox クラスは、ダブルを取るスピンボックスウィジェットを提供します。詳細...

ヘッダー #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 では、上下ボタンをクリックするか、キーボードの Up または Down を押して値を選択し、現在表示されている値を増減できます。ユーザーは手動で値を入力することもできます。スピンボックスはダブル値をサポートしていますが、validate()、textFromValue()、valueFromText()を使用して異なる文字列を使用するように拡張することができます。

QString textChanged prefix suffix値が変更されるたびに、QDoubleSpinBox はvalueChanged() とtextChanged() シグナルを出力します。現在の値は、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に設定されていれば、"up "をクリックすると0が表示されます。循環的な動作が必要な場合は、setWrapping() を使用する。

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

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

注意: QDoubleSpinBox の表示値は、接頭辞と接尾辞の内容に加えて 18 文字に制限されています。この制限は、非常に大きな値でもダブルスピンボックスを使用可能に保つために使用されます。

QSpinBox,QDateTimeEdit,QSlider,Spin Boxes Exampleも参照してください

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

[read-only] cleanText : const QString

このプロパティは、接頭辞、接尾辞、先頭または末尾の空白を除いたスピンボックスのテキストを保持します。

アクセス関数:

QString cleanText() const

textQDoubleSpinBox::prefixQDoubleSpinBox::suffixも参照してください

decimals : int

このプロパティは、スピンボックスの精度を小数で保持します。

スピンボックスが倍数の表示と解釈に使用する小数点以下の桁数を設定します。

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

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

アクセス関数:

int decimals() const
void setDecimals(int prec)

maximum : double

このプロパティは、スピンボックスの最大値を保持します。

このプロパティを設定するとき、minimum は必要に応じて調整され、範囲が有効であることを保証します。

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

注意: 最大値は、小数のプロパティと一致するように丸められます。

アクセス関数:

double maximum() const
void setMaximum(double max)

decimals およびsetRange()も参照のこと

minimum : double

このプロパティは、スピンボックスの最小値を保持します。

このプロパティを設定するとき、maximum は、範囲が有効なままであることを保証するために必要に応じて調整されます。

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

注意:最小値は、小数プロパティと一致するように丸められます。

アクセス関数:

double minimum() const
void setMinimum(double min)

decimalssetRange()、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

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

ステップタイプは、シングルステップまたはアダプティブ10進ステップである。

アクセス関数

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)

1回の関数呼び出しでminimummaximum の値を設定する便利な関数。

注:最大値と最小値は、小数のプロパティに合わせて丸められます。

setRange(minimum, maximum);

は等価です:

setMinimum(minimum);
setMaximum(maximum);

minimum およびmaximumも参照

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

スピンボックスのステップタイプをstepType に設定します。シングルステップまたはアダプティブ・デシマルステップです。

アダプティブ・デシマル・ステップとは、ステップ・サイズが現在のvalue よりも10の1乗小さい値に継続的に調整されることを意味します。つまり、値が1100のとき、ステップは100に設定されているので、1回ステップアップすると1200になる。1200の場合、ステップアップすると1300になる。負の値の場合、-1100からステップダウンすると-1200になる。

0.041は1回ステップすることで0.042になります。

ステップの方向は、100からステップダウンすると90ではなく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() が設定されていない限り、千区切りは削除されます。再実装は何でも返すことができる。

注意:QDoubleSpinBoxspecialValueText() に対してこの関数を呼び出さない。また、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 を値として解釈する必要があるときに、スピンボックスによって使用されます。

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

注意:QDoubleSpinBoxspecialValueText() を個別に処理します。この関数はその他の値のみを扱います。

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

© 2025 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.