QAbstractSpinBox Class

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

Header: #include <QAbstractSpinBox>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QWidget
Inherited By:

QDateTimeEdit, QDoubleSpinBox, and 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::AlignLeftQt::AlignRight 、およびQt::AlignHCenter です。

デフォルトでは、アライメントはQt::AlignLeft

アライメントを不正なフラグの組み合わせに設定しようとしても何もしません。

関数にアクセスします:

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

Qt::Alignmentも参照

buttonSymbols : ButtonSymbols

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

とりうる値はUpDownArrows またはPlusMinus のいずれかです。 デフォルトは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()

このシグナルは編集が終了したときに発行されます。スピンボックスのフォーカスが外れたときや、Enterが押されたときに発生します。

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

再リプルメント: (QFocusEvent *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)

再リンプルメント: (QMouseEvent *event):QWidget::mouseReleaseEvent(QMouseEvent *event).

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

再リンプルメント: (QMouseEvent *event):QWidget::paintEvent(QPaintEvent *event)。

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

再リンプルメント: (QPaintEvent *event):QWidget::resizeEvent(QResizeEvent *event)。

[slot] void QAbstractSpinBox::selectAll()

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

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

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

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) を返します。それ以外の場合は、値が > 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)。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。