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() |
保護された関数
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に表示されるテキストです。
- アラインメント: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,Spin Boxes Exampleも参照してください 。
メンバ型ドキュメント
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
このプロパティは、ステップ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
このプロパティは、現在のボタンシンボルモードを保持する。
指定できる値は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()シグナルを発しません。リターンキーが押されたとき、キーボードのフォーカスが失われたとき、または矢印キーが押されたときなど、他のスピンボックスの機能が使用されたときに、後でシグナルを発します。
アクセス関数
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%の間でスケールを選択するか、"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() が呼ばれたときに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
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
[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 に設定します。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
[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)を呼び出すことに似ている;
[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.