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

シグナル

保護された関数

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

詳細説明

このクラスは、QSpinBoxQDoubleSpinBox 、 のようなウィジェットの共通のスーパークラスとして設計されています。QDateTimeEdit

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

  1. text:QAbstractSpinBoxに表示されるテキストです。
  2. アラインメント: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,Spin Boxes Exampleも参照してください

メンバ型ドキュメント

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

このプロパティは、ステップUp/Downボタンを押したときに、スピンボックスがステップの周波数を加速させるかどうかを保持します。

有効な場合、スピンボックスは、ボタンを押し続けるほど、値を速く増減します。

アクセス関数

bool isAccelerated() const
void setAccelerated(bool on)

[read-only] acceptableInput : const 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

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

指定できる値はUpDownArrowsPlusMinus のどちらかです。デフォルトはUpDownArrows です。

スタイルによっては、PlusMinusUpDownArrows を同じようにレンダリングするかもしれないことに注意してください。

アクセス関数:

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

ButtonSymbolsも参照

correctionMode : CorrectionMode

このプロパティは、編集が終了した場合にIntermediate の値を修正するモードを保持する。

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

アクセス関数:

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

acceptableInputvalidate ()、fixup)も参照

frame : bool

このプロパティは、スピンボックスがそれ自身をフレームで描画するかどうかを保持します。

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

アクセス関数です:

bool hasFrame() const
void setFrame(bool)

keyboardTracking : bool

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

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

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

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

アクセス関数

bool keyboardTracking() const
void setKeyboardTracking(bool kt)

readOnly : bool

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

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

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

アクセス関数:

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%の間でスケールを選択するか、"Auto "を選択してアプリケーションに選択させることができます。あなたのコードは、スピンボックスの値0を、ウィンドウ内に収まるように画像を拡大縮小するユーザーからの要求として解釈する必要があります。

すべての値は、接頭辞と接尾辞(設定されている場合)とともに表示されますが、特別な値は特別な値のテキストだけが表示されます。この特別なテキストは、QString を渡すQSpinBox::textChanged() シグナルで渡されます。

特別値テキストの表示をオフにするには、この関数を空の文字列で呼び出します。デフォルトは特殊値テキストなし、つまり数値は通常どおり表示される。

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

関数にアクセスします:

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

[read-only] text : const QString

このプロパティは、接頭辞と接尾辞を含むスピンボックスのテキストを保持します。

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

アクセス関数:

QString text() const

wrapping : bool

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

wrappingがtrueの場合、maximum()値からステップアップするとminimum()値に移動し、逆も同様です。wrappingは、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()

このシグナルは編集が終了したときに発せられます。これはスピンボックスがフォーカスを失ったときと、エンターキーが押されたときに発生します。

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

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

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

この仮想関数は、Return が押されたとき、またはinterpretText() が呼ばれたときにinputQValidator::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

QSpinBox の値でoption を初期化する。このメソッドは、サブクラスが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前回シグナルが発せられたときから値が変わっていなくても、テキストを再解釈してシグナルを発します。
stepBy(1)を呼び出します。
stepBy(-1) を呼び出します。
ページアップstepBy(10) を呼び出します。
ページダウン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)。

[slot] void QAbstractSpinBox::selectAll()

接頭辞と接尾辞を除く、スピンボックス内のすべてのテキストを選択します。

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

スピンボックスの行編集を、現在の行編集ウィジェットの代わりにlineEdit に設定します。lineEditnullptr にはできません。

QAbstractSpinBox 新しいlineEdit

lineEditQLineEdit::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) を返します。それ以外の場合は、値が > minimum() の場合はStepDownEnabled を返し、value < maximum() の場合はStepUpEnabled を返します。

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

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

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

再実装:QWidget::wheelEvent(QWheelEvent *event)。

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