このページでは

QAbstractSpinBox Class

QAbstractSpinBox クラスは、値を表示するためのスピンボックスとラインエディットを提供します。詳細...

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

QDateTimeEdit、QDoubleSpinBox 、およびQSpinBox

パブリック型

enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }
enum CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue }
flags StepEnabled
enum StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled }
enum StepType { DefaultStepType, AdaptiveDecimalStepType }

プロパティ

パブリック関数

QAbstractSpinBox(QWidget *parent = nullptr)
virtual ~QAbstractSpinBox()
Qt::Alignment alignment() const
QAbstractSpinBox::ButtonSymbols buttonSymbols() const
QAbstractSpinBox::CorrectionMode correctionMode() const
virtual void fixup(QString &input) const
bool hasAcceptableInput() const
bool hasFrame() const
void interpretText()
bool isAccelerated() const
bool isGroupSeparatorShown() const
bool isReadOnly() const
bool keyboardTracking() const
void setAccelerated(bool on)
void setAlignment(Qt::Alignment flag)
void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)
void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm)
void setFrame(bool)
void setGroupSeparatorShown(bool shown)
void setKeyboardTracking(bool kt)
void setReadOnly(bool r)
void setSpecialValueText(const QString &txt)
void setWrapping(bool w)
QString specialValueText() const
virtual void stepBy(int steps)
QString text() const
virtual QValidator::State validate(QString &input, int &pos) const
bool wrapping() const

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

virtual bool event(QEvent *event) override
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

パブリックスロット

virtual void clear()
void selectAll()
void stepDown()
void stepUp()

シグナル

void editingFinished()
(since 6.10) void returnPressed()

protected関数

virtual void initStyleOption(QStyleOptionSpinBox *option) const
QLineEdit *lineEdit() const
void setLineEdit(QLineEdit *lineEdit)
virtual QAbstractSpinBox::StepEnabled stepEnabled() const

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

virtual void changeEvent(QEvent *event) override
virtual void closeEvent(QCloseEvent *event) override
virtual void contextMenuEvent(QContextMenuEvent *event) override
virtual void focusInEvent(QFocusEvent *event) override
virtual void focusOutEvent(QFocusEvent *event) override
virtual void hideEvent(QHideEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void keyReleaseEvent(QKeyEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void paintEvent(QPaintEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void showEvent(QShowEvent *event) override
virtual void timerEvent(QTimerEvent *event) override
virtual void wheelEvent(QWheelEvent *event) override

詳細な説明

このクラスは、QSpinBox 、QDoubleSpinBox 、およびQDateTimeEdit

このクラスの主なプロパティは以下の通りです:

  1. text: QAbstractSpinBox に表示されるテキスト。
  2. alignment: QAbstractSpinBox 内のテキストの配置。
  3. wrapping: QAbstractSpinBox が最小値から最大値へ、あるいはその逆方向にラップするかどうか。

QAbstractSpinBox は、ユーザーがステップをトリガーするたびに呼び出される仮想関数 `stepBy()` を提供します。この関数は、ステップ数が示される整数値を受け取ります。例:Qt::Key_Down を押すと、stepBy (-1)が呼び出されます。

ユーザーがQt::ControlModifier を押したままステップをトリガーすると、QAbstractSpinBoxは1ステップではなく10ステップ分進みます。このステップ修飾子は、ホイールイベント、キーイベント、およびスピンボックスのボタンとのインタラクションに影響します。macOSでは、ControlキーがCommandキーに対応することに注意してください。

Qt 5.12以降、QStyle::SH_SpinBox_StepModifier を使用することで、ステップレートを増加させるQt::KeyboardModifier を選択できるようになりました。Qt::NoModifier はこの機能を無効にします。

また、QAbstractSpinBoxは、任意の時点でステップアップ/ステップダウンが許可されているかどうかを判定するための仮想関数stepEnabled()も提供しています。この関数は、StepEnabled のビットセットを返します。

QAbstractSlider 、QSpinBox 、QDoubleSpinBox 、QDateTimeEdit 、および「スピンボックスの例」も参照してください 。

メンバ型のドキュメント

enum QAbstractSpinBox::ButtonSymbols

この列挙型は、スピンボックスのボタンに表示可能な記号を表します。

上下の矢印記号が付いたスピンボックス プラス記号とマイナス記号が表示されたスピンボックス

定数値説明
QAbstractSpinBox::UpDownArrows0クラシックなスタイルの小さな矢印。
QAbstractSpinBox::PlusMinus1「+」および「-」記号。
QAbstractSpinBox::NoButtons2ボタンを表示しない。

QAbstractSpinBox::buttonSymbolsも参照してください 。

enum QAbstractSpinBox::CorrectionMode

この列挙型は、編集が終了した際にスピンボックスがIntermediate の値を補正するために使用するモードを表します。

定数値説明
QAbstractSpinBox::CorrectToPreviousValue0スピンボックスは、最後の有効な値に戻ります。
QAbstractSpinBox::CorrectToNearestValue1スピンボックスは、最も近い有効な値に戻ります。

「correctionMode」も参照してください 。

enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled

定数値
QAbstractSpinBox::StepNone0x00
QAbstractSpinBox::StepUpEnabled0x01
QAbstractSpinBox::StepDownEnabled0x02

StepEnabled 型は、QFlags<StepEnabledFlag> の typedef です。この型は、StepEnabledFlag の値の論理和(OR)を格納します。

enum QAbstractSpinBox::StepType

定数定数
QAbstractSpinBox::DefaultStepType0
QAbstractSpinBox::AdaptiveDecimalStepType1

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

accelerated : bool

このプロパティは、ステップアップ/ステップダウンボタンを押した際に、スピンボックスのステップ間隔の切り替え頻度を速めるかどうかを指定します。

有効にしている場合、ボタンを長押しする時間が長いほど、スピンボックスの値の増減速度が速くなります。

アクセス関数:

bool isAccelerated() const
void setAccelerated(bool on)

[read-only] acceptableInput : bool

このプロパティは、入力が現在の検証条件を満たしているかどうかを示します

アクセス関数:

bool hasAcceptableInput() const

関連項目: validate()、fixup()、およびcorrectionMode 。

alignment : Qt::Alignment

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

指定可能な値は、Qt::AlignLeft 、Qt::AlignRight 、およびQt::AlignHCenter です。

デフォルトの配置はQt::AlignLeft

無効なフラグの組み合わせで配置を設定しようとすると、何も起こりません。

アクセス関数:

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment flag)

Qt::Alignmentも参照してください 。

buttonSymbols : ButtonSymbols

このプロパティは、現在のボタンシンボルモードを保持します

取り得る値は、UpDownArrows またはPlusMinus のいずれかです。デフォルトはUpDownArrows です。

一部のスタイルでは、PlusMinus とUpDownArrows が同じように表示される場合があることに注意してください。

アクセス関数:

QAbstractSpinBox::ButtonSymbols buttonSymbols() const
void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)

ButtonSymbolsも参照してください 。

correctionMode : CorrectionMode

このプロパティは、編集が終了した際に「Intermediate 」の値を補正するモードを保持します

デフォルトのモードは `QAbstractSpinBox::CorrectToPreviousValue` です。

アクセス関数:

QAbstractSpinBox::CorrectionMode correctionMode() const
void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm)

関連項目: acceptableInput 、validate()、およびfixup()。

frame : bool

このプロパティは、スピンボックスがフレーム付きで描画されるかどうかにかかわらず有効です

有効になっている場合(デフォルト)、スピンボックスはフレーム内に表示され、そうでない場合はフレームなしで表示されます。

アクセス関数:

bool hasFrame() const
void setFrame(bool)

keyboardTracking : bool

このプロパティは、スピンボックスでキーボード追跡が有効になっているかどうかを示します。

キーボードトラッキングが有効になっている場合(デフォルト設定)、キーボードから新しい値が入力されている間、スピンボックスは valueChanged() および textChanged() シグナルを発行します。

たとえば、ユーザーが 6、0、0 と入力して値 600 を入力した場合、スピンボックスは、それぞれ値 6、60、600 を持つ 3 つのシグナルを発行します。

キーボードトラッキングが無効になっている場合、スピンボックスは入力中に valueChanged() および textChanged() シグナルを発行しません。これらのシグナルは、後で、Return キーが押されたとき、キーボードフォーカスが失われたとき、または矢印キーの押下など、スピンボックスの他の機能が使用されたときに発行されます。

アクセス関数:

bool keyboardTracking() const
void setKeyboardTracking(bool kt)

readOnly : bool

このプロパティは、スピンボックスが読み取り専用であるかどうかを指定します。

読み取り専用モードでも、ユーザーはテキストをクリップボードにコピーしたり、ドラッグ&ドロップしたりすることはできますが、編集することはできません。

QAbstractSpinBox のQLineEdit は、読み取り専用モードではカーソルを表示しません。

アクセス関数:

bool isReadOnly() const
void setReadOnly(bool r)

「QLineEdit::readOnly」も参照してください 。

showGroupSeparator : bool

このプロパティは、千の位区切り記号が有効かどうかを指定します。デフォルトでは、このプロパティの値は false です。

アクセス関数:

bool isGroupSeparatorShown() const
void setGroupSeparatorShown(bool shown)

specialValueText : QString

このプロパティには、特別な値のテキストが格納されます

このプロパティが設定されている場合、現在の値がminimum()と等しいときは、スピンボックスは数値の代わりにこのテキストを表示します。典型的な用途は、この選択肢が特別な(デフォルトの)意味を持つことを示すことです。

たとえば、スピンボックスでユーザーが画像を表示するためのスケール係数(またはズームレベル)を選択でき、アプリケーションが画像を表示ウィンドウ内に完全に収まるように自動的に値を選択できる場合、スピンボックスを次のように設定できます。

    QSpinBox *zoomSpinBox = new QSpinBox;
    zoomSpinBox->setRange(0, 1000);
    zoomSpinBox->setSingleStep(10);
    zoomSpinBox->setSuffix("%");
    zoomSpinBox->setSpecialValueText(tr("Automatic"));
    zoomSpinBox->setValue(100);

これにより、ユーザーは1%から1000%までのスケールを選択するか、「自動」を選択してアプリケーションに選択を任せることができます。この場合、コード側では、スピンボックスの値が0である場合を、ユーザーが画像をウィンドウ内に収まるように拡大縮小することを希望しているものと解釈する必要があります。

すべての値は、プレフィックスとサフィックス(設定されている場合)付きで表示されますが、特殊な値については、その特殊な値のテキストのみが表示されます。この特殊なテキストは、QString を渡すQSpinBox::textChanged()シグナルを通じて渡されます。

特殊値テキストの表示を無効にするには、この関数を空の文字列引数で呼び出します。デフォルトでは特殊値テキストは表示されず、通常通り数値が表示されます。

特別な値のテキストが設定されていない場合、specialValueText()は空の文字列を返します。

アクセス関数:

QString specialValueText() const
void setSpecialValueText(const QString &txt)

[read-only] text : QString

このプロパティには、接頭辞や接尾辞を含めたスピンボックスのテキストが格納されます

デフォルトのテキストはありません。

アクセス関数:

QString text() const

wrapping : bool

このプロパティは、スピンボックスが円形であるかどうかを指定します。

ラップがtrueの場合、maximum()の値から段階的に増加させるとminimum()の値に到達し、その逆も同様になります。ラップ機能は、minimum()とmaximum()の値が設定されている場合にのみ意味を持ちます。

QSpinBox *spinBox = new QSpinBox(this);
spinBox->setRange(0, 100);
spinBox->setWrapping(true);
spinBox->setValue(100);
spinBox->stepBy(1);
// value is 0

アクセス関数:

bool wrapping() const
void setWrapping(bool w)

QSpinBox::minimum() およびQSpinBox::maximum()も参照してください 。

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

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

指定されたparent 、デフォルトのwrapping 、および配置プロパティを持つ抽象的なスピンボックスを作成します。

[virtual noexcept] QAbstractSpinBox::~QAbstractSpinBox()

QAbstractSpinBox が破棄される際に呼び出されます。

[override virtual protected] void QAbstractSpinBox::changeEvent(QEvent *event)

QWidget::changeEvent(QEvent *event) の再実装です。

[virtual slot] void QAbstractSpinBox::clear()

プレフィックスとサフィックスを除くすべてのテキストを、行編集から削除します。

[override virtual protected] void QAbstractSpinBox::closeEvent(QCloseEvent *event)

QWidget::closeEvent(QCloseEvent *event) を再実装します。

[override virtual protected] void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event)

QWidget::contextMenuEvent(QContextMenuEvent *event) を再実装します。

[signal] void QAbstractSpinBox::editingFinished()

このシグナルは、編集が完了した際に発信されます。これは、スピンボックスがフォーカスを失ったときや、Enterキーが押されたときに発生します。

[override virtual] bool QAbstractSpinBox::event(QEvent *event)

QWidget::event(QEvent *event) を再実装します。

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

この仮想関数は、Returnキーが押されたとき、またはinterpretText()が呼び出された際に、input がQValidator::Acceptable として検証されていない場合、QAbstractSpinBox によって呼び出されます。この関数は、テキストが有効になるよう変更を試みます。さまざまなサブクラスで再実装されます。

[override virtual protected] void QAbstractSpinBox::focusInEvent(QFocusEvent *event)

QWidget::focusInEvent(QFocusEvent *event) を再実装します。

[override virtual protected] void QAbstractSpinBox::focusOutEvent(QFocusEvent *event)

QWidget::focusOutEvent(QFocusEvent *event) を再実装します。

[override virtual protected] void QAbstractSpinBox::hideEvent(QHideEvent *event)

QWidget::hideEvent(QHideEvent *event) を再実装します。

[virtual protected] void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const

option を、QSpinBox の値で初期化します。このメソッドは、QStyleOptionSpinBox が必要であるものの、すべての情報を自分で入力したくないサブクラスにとって便利です。

QStyleOption::initFrom()も参照してください 。

[override virtual] QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const

QWidget::inputMethodQuery (Qt::InputMethodQuery query)const を再実装します。

void QAbstractSpinBox::interpretText()

この関数は、スピンボックスのテキストを解析します。前回の解析以降に値が変更された場合、シグナルを出力します。

[override virtual protected] void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)

QWidget::keyPressEvent(QKeyEvent *event) を再実装しています。

この関数は、キーボード入力を処理します。

具体的には、以下のキーが処理されます:

Enter/Returnこれにより、前回のシグナル発火以降に値が変更されていなくても、テキストが再解釈され、シグナルが発火されます。
Upこれにより、stepBy(1) が呼び出されます。
下stepBy(-1) を呼び出します。上
ページアップこれにより、stepBy(10) が呼び出されます
Page Downこれにより、stepBy(-10) が呼び出されます

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

[override virtual protected] void QAbstractSpinBox::keyReleaseEvent(QKeyEvent *event)

QWidget::keyReleaseEvent(QKeyEvent *event) を再実装します。

[protected] QLineEdit *QAbstractSpinBox::lineEdit() const

この関数は、スピンボックスのラインエディットへのポインタを返します。

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

[override virtual] QSize QAbstractSpinBox::minimumSizeHint() const

プロパティ「QWidget::minimumSizeHint 」のアクセス関数を再実装します。

[override virtual protected] void QAbstractSpinBox::mouseMoveEvent(QMouseEvent *event)

QWidget::mouseMoveEvent(QMouseEvent *event) を再実装します。

[override virtual protected] void QAbstractSpinBox::mousePressEvent(QMouseEvent *event)

QWidget::mousePressEvent(QMouseEvent *event) を再実装しています。

[override virtual protected] void QAbstractSpinBox::mouseReleaseEvent(QMouseEvent *event)

QWidget::mouseReleaseEvent(QMouseEvent *event) を再実装しています。

[override virtual protected] void QAbstractSpinBox::paintEvent(QPaintEvent *event)

QWidget::paintEvent(QPaintEvent *event) を再実装します。

[override virtual protected] void QAbstractSpinBox::resizeEvent(QResizeEvent *event)

QWidget::resizeEvent(QResizeEvent *event) を再実装します。

[signal, since 6.10] void QAbstractSpinBox::returnPressed()

このシグナルは、Return キーまたは Enter キーが押されたときに発生します。

この機能はQt 6.10で導入されました。

[slot] void QAbstractSpinBox::selectAll()

プレフィックスとサフィックスを除く、スピンボックス内のテキストをすべて選択します。

[protected] void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit)

スピンボックスのラインエディットを、現在のラインエディットウィジェットの代わりにlineEdit に設定します。lineEdit は、nullptr であってはなりません。

QAbstractSpinBox 新しいlineEdit

lineEdit のQLineEdit::validator()がnullptr を返す場合、スピンボックスの内部バリデータはラインエディットに設定されます。

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

[override virtual protected] void QAbstractSpinBox::showEvent(QShowEvent *event)

QWidget::showEvent(QShowEvent *event) の再実装です。

[override virtual] QSize QAbstractSpinBox::sizeHint() const

プロパティ「QWidget::sizeHint 」のアクセス関数を再実装します。

[virtual] void QAbstractSpinBox::stepBy(int steps)

ユーザーがステップをトリガーするたびに呼び出される仮想関数です。steps パラメータは、実行されたステップの数を示します。たとえば、Qt::Key_Down を押すとstepBy(-1) が呼び出され、Qt::Key_PageUp を押すとstepBy(10) が呼び出されます。

QAbstractSpinBox をサブクラス化する場合、この関数を再実装する必要があります。なお、この関数は、結果の値が最小値と最大値の範囲外になる場合でも呼び出されます。このような状況に対処するのは、この関数の役割です。

stepUp()、stepDown()、およびkeyPressEvent()も参照してください 。

[slot] void QAbstractSpinBox::stepDown()

1ラインステップ分下へ移動します。このスロットを呼び出すことは、stepBy(-1); を呼び出すのと同じです。

stepBy() およびstepUp()も参照してください 。

[virtual protected] QAbstractSpinBox::StepEnabled QAbstractSpinBox::stepEnabled() const

任意の時点で、ステップアップおよびステップダウンが有効かどうかを判定する仮想関数。

(stepEnabled() &StepUpEnabled) != 0 でない限り、上矢印は使用不可として描画されます。

ラップ機能が有効になっている場合、デフォルトの実装は (StepUpEnabled|StepDownEnabled) を返します。そうでない場合、value が > minimum() のときはStepDownEnabled を返し、value が < maximum() のときはStepUpEnabled と論理和(OR)をとり、その結果を返します。

QAbstractSpinBox をサブクラス化する場合、この関数を再実装する必要があります。

QSpinBox::minimum()、QSpinBox::maximum()、およびwrapping()も参照してください 。

[slot] void QAbstractSpinBox::stepUp()

1ラインステップ分上に移動します。このスロットを呼び出すことは、stepBy(1)を呼び出すのと同じです。

stepBy() およびstepDown()も参照してください 。

[override virtual protected] void QAbstractSpinBox::timerEvent(QTimerEvent *event)

QObject::timerEvent(QTimerEvent *event) を再実装します。

[virtual] QValidator::State QAbstractSpinBox::validate(QString &input, int &pos) const

この仮想関数は、QAbstractSpinBox によって呼び出され、input が有効かどうかを判定します。pos パラメータは、文字列内の位置を示します。さまざまなサブクラスで再実装されます。

[override virtual protected] void QAbstractSpinBox::wheelEvent(QWheelEvent *event)

QWidget::wheelEvent(QWheelEvent *event) を再実装します。

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