QAbstractSpinBox Class
QAbstractSpinBox クラスは、値を表示するためのスピンボックスとラインエディットを提供します。詳細...
| ヘッダー: | #include <QAbstractSpinBox> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QWidget |
| 継承元: |
パブリック型
| 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 |
パブリックスロット
シグナル
| 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
このクラスの主なプロパティは以下の通りです:
- text: QAbstractSpinBox に表示されるテキスト。
- alignment: QAbstractSpinBox 内のテキストの配置。
- 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::UpDownArrows | 0 | クラシックなスタイルの小さな矢印。 |
QAbstractSpinBox::PlusMinus | 1 | 「+」および「-」記号。 |
QAbstractSpinBox::NoButtons | 2 | ボタンを表示しない。 |
QAbstractSpinBox::buttonSymbolsも参照してください 。
enum QAbstractSpinBox::CorrectionMode
この列挙型は、編集が終了した際にスピンボックスがIntermediate の値を補正するために使用するモードを表します。
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractSpinBox::CorrectToPreviousValue | 0 | スピンボックスは、最後の有効な値に戻ります。 |
QAbstractSpinBox::CorrectToNearestValue | 1 | スピンボックスは、最も近い有効な値に戻ります。 |
「correctionMode」も参照してください 。
enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled
| 定数 | 値 |
|---|---|
QAbstractSpinBox::StepNone | 0x00 |
QAbstractSpinBox::StepUpEnabled | 0x01 |
QAbstractSpinBox::StepDownEnabled | 0x02 |
StepEnabled 型は、QFlags<StepEnabledFlag> の typedef です。この型は、StepEnabledFlag の値の論理和(OR)を格納します。
enum QAbstractSpinBox::StepType
| 定数 | 定数 |
|---|---|
QAbstractSpinBox::DefaultStepType | 0 |
QAbstractSpinBox::AdaptiveDecimalStepType | 1 |
プロパティのドキュメント
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 であってはなりません。
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.