QSpinBox Class

QSpinBox クラスは、スピンボックスウィジェットを提供します。詳細...

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

プロパティ

パブリック機能

QSpinBox(QWidget *parent = nullptr)
virtual ~QSpinBox()
QString cleanText() const
int displayIntegerBase() const
int maximum() const
int minimum() const
QString prefix() const
void setDisplayIntegerBase(int base)
void setMaximum(int max)
void setMinimum(int min)
void setPrefix(const QString &prefix)
void setRange(int minimum, int maximum)
void setSingleStep(int val)
void setStepType(QAbstractSpinBox::StepType stepType)
void setSuffix(const QString &suffix)
int singleStep() const
QAbstractSpinBox::StepType stepType() const
QString suffix() const
int value() const

パブリックスロット

void setValue(int val)

シグナル

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

保護された関数

virtual QString textFromValue(int value) const
virtual int valueFromText(const QString &text) const

再実装されたプロテクト関数

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

詳細説明

QSpinBox は、整数や離散的な値の集合(月名など)を扱うように設計されています。浮動小数点値にはQDoubleSpinBox を使用してください。

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

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

上下ボタンをクリックするか、キーボード・アクセラレータの上下矢印を使用すると、singleStep() サイズのステップで現在値が増減します。この動作を変更したい場合は、仮想関数stepBy() を再実装してください。最小値、最大値、ステップサイズはコンストラクタで設定でき、setMinimum()、setMaximum()、setSingleStep()で変更できます。

ほとんどのスピンボックスは方向性を持っていますが、QSpinBoxは円形のスピンボックスとしても動作します。つまり、範囲が0~99で現在の値が99の場合、wrapping() がtrueに設定されていれば、"up "をクリックすると0になります。円形の動作が必要な場合は、setWrapping() を使用してください。

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

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

QSpinBox のサブクラス化

prefix ()、suffix ()、specialValueText ()を使用しても十分な制御ができない場合は、QSpinBoxをサブクラス化し、valueFromText ()およびtextFromValue ()を再実装します。たとえば、ユーザーがアイコンのサイズ(たとえば、「32 x 32」)を入力できるカスタム スピン ボックスのコードは次のとおりです:

int IconSizeSpinBox::valueFromText(const QString &text) const
{
    static const QRegularExpression regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?"));
    Q_ASSERT(regExp.isValid());

    const QRegularExpressionMatch match = regExp.match(text);
    if (match.isValid())
        return match.captured(1).toInt();
    return 0;
}

QString IconSizeSpinBox::textFromValue(int value) const
{
    return tr("%1 x %1").arg(value);
}

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

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

[read-only] cleanText : const QString

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

アクセス関数:

QString cleanText() const

textQSpinBox::prefixQSpinBox::suffixも参照してください

displayIntegerBase : int

このプロパティは、スピンボックスの値を表示するために使用されるベースを保持します。

デフォルトのdisplayIntegerBase値は10です。

アクセス関数:

int displayIntegerBase() const
void setDisplayIntegerBase(int base)

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

maximum : int

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

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

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

アクセス関数:

int maximum() const
void setMaximum(int max)

setRange() およびspecialValueTextも参照してください

minimum : int

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

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

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

アクセス関数:

int minimum() const
void setMinimum(int min)

setRange() およびspecialValueTextも参照してください

prefix : QString

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

接頭辞は、表示される値の先頭に付加されます。典型的な使用法は、測定単位または通貨記号を表示することです。例えば

sb->setPrefix("$");

接頭辞の表示をオフにするには、このプロパティに空の文字列を設定します。デフォルトは接頭辞なし。value() ==minimum() およびspecialValueText() が設定されている場合、接頭辞は表示されません。

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

アクセス関数:

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

suffix()、setSuffix()、specialValueText()、setSpecialValueText()も参照

singleStep : int

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

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

関数にアクセスします:

int singleStep() const
void setSingleStep(int val)

stepType : StepType

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

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

アクセス関数

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

suffix : QString

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

サフィックスは、表示される値の末尾に付加されます。典型的な使用方法は、測定単位または通貨記号を表示することです。例えば

sb->setSuffix(" km");

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

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

アクセス関数:

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

prefix()、setPrefix()、specialValueText()、setSpecialValueText()も参照

value : int

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

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

アクセス関数

int value() const
void setValue(int val)

通知シグナル

void valueChanged(int i)

メンバ関数ドキュメント

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

parent最小値 0、最大値 99、ステップ値 1 のスピンボックスを作成します。

setMinimum()、setMaximum()、setSingleStep()も参照してください

[virtual noexcept] QSpinBox::~QSpinBox()

破壊者。

[override virtual protected] bool QSpinBox::event(QEvent *event)

再実装:QAbstractSpinBox::event(QEvent *event)。

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

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

void QSpinBox::setRange(int minimum, int maximum)

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

setRange(minimum, maximum);

と等価です:

setMinimum(minimum);
setMaximum(maximum);

minimum およびmaximumも参照のこと

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

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

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

ステップの方向は、100からステップダウンすると値が90ではなく99になるように、エッジケースを処理するために考慮されます。従って、ステップアップの後にステップダウン、またはその逆は、常に開始値に着地します。

これを設定すると、スピンボックスはsingleStep の値を無視するようになりますが、アダプティブデシマルステップが後でオフにされた場合、singleStep が有効になるように保存されます。

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

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

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

このシグナルは、スピンボックスのテキストが変更されるたびに発行されます。新しいテキストはprefix() とsuffix() でtext に渡されます。

[virtual protected] QString QSpinBox::textFromValue(int value) const

この仮想関数はスピンボックスが与えられたvalue を表示する必要があるときに使用されます。デフォルトの実装は、QWidget::locale().toString() を使用して標準的な方法で印刷されたvalue を含む文字列を返しますが、setGroupSeparatorShown() が設定されていない限り、千区切りは削除されます。再実装は何でも返すことができます。(詳細説明の例を参照のこと)。

注意:QSpinBoxspecialValueText() に対してこの関数を呼び出さないため、prefix() もsuffix() も返り値に含める必要はない。

これを再実装する場合、valueFromText ()とvalidate ()も再実装する必要があるかもしれない。

valueFromText()、validate()、QLocale::groupSeparator()も参照

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

再実装:QAbstractSpinBox::validate(QString &input, int &pos) const.

[signal] void QSpinBox::valueChanged(int i)

このシグナルはスピンボックスの値が変更されるたびに発行されます。新しい値の整数値はi で渡されます。

注意: value プロパティ用のノーティファイアシグナルです。

[virtual protected] int QSpinBox::valueFromText(const QString &text) const

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

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

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

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.