QSpinBox Class

QSpinBox クラスは、スピンボックスウィジェットを提供します。詳細...

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

プロパティ

パブリック関数

QSpinBox(QWidget *parent = nullptr)
virtual ~QSpinBox()
QString cleanText() const
int displayIntegerBase() const
int maximum() const
int minimum() const
QString prefix() const
void setDisplayIntegerBase(int base)
void setMaximum(int max)
void setMinimum(int min)
void setPrefix(const QString &prefix)
void setRange(int minimum, int maximum)
void setSingleStep(int val)
void setStepType(QAbstractSpinBox::StepType stepType)
void setSuffix(const QString &suffix)
int singleStep() const
QAbstractSpinBox::StepType stepType() const
QString suffix() const
int value() const

パブリックスロット

void setValue(int val)

シグナル

void textChanged(const QString &text)
void valueChanged(int i)

保護された関数

virtual QString textFromValue(int value) const
virtual int valueFromText(const QString &text) const

再実装された保護された関数

virtual bool event(QEvent *event) override
virtual void fixup(QString &input) const override
virtual QValidator::State validate(QString &text, int &pos) const override

詳細説明

QSpinBox は、整数や離散的な値の集合(月名など)を扱うように設計されています。浮動小数点値にはQDoubleSpinBox を使用してください。

QSpinBox では、ユーザーが上下ボタンをクリックするか、キーボードの上下を押して値を選択し、現在表示されている値を増減できます。ユーザーは手動で値を入力することもできます。スピンボックスは整数値をサポートしていますが、validate()、textFromValue()、valueFromText()を使用して異なる文字列を使用するように拡張することができます。

値が変更されるたびに、QSpinBoxはvalueChanged() とtextChanged() シグナルを発行します。前者はintを、後者はQString を提供します。textChanged() シグナルは、prefix() とsuffix() の両方で値を提供します。現在の値は、value() で取得でき、setValue() で設定できる。

上下ボタンをクリックするか、キーボード・アクセラレータの上下矢印を使用すると、singleStep() サイズのステップで現在値が増減します。この動作を変更したい場合は、仮想関数stepBy() を再実装してください。最小値、最大値、ステップサイズはコンストラクタで設定でき、setMinimum()、setMaximum()、setSingleStep()で変更できます。

ほとんどのスピンボックスは方向性がありますが、QSpinBoxは円形のスピンボックスとしても動作します。つまり、範囲が0~99で現在の値が99の場合、wrapping() がtrueに設定されていれば、"up" をクリックすると0が表示されます。円形の動作が必要な場合は、setWrapping() を使用してください。

表示される値には、通貨や単位などを示す任意の文字列を前置したり付加したりすることができる。setPrefix() およびsetSuffix() を参照してください。スピン・ボックスのテキストは、text() (prefix() とsuffix() を含む)、またはcleanText() (prefix() とsuffix() がなく、先頭または末尾に空白がない) で取得されます。

数値の範囲に加えて、ユーザーに特別な(多くの場合デフォルトの)選択肢を与えることが望ましい場合が多い。QSpinBox でこれを行う方法については、setSpecialValueText() を参照してください。

QSpinBox のサブクラス化

prefix ()、suffix ()、specialValueText ()を使用しても十分な制御ができない場合は、QSpinBoxをサブクラス化し、valueFromText ()およびtextFromValue ()を再実装します。たとえば、ユーザーがアイコンのサイズ(たとえば、「32 x 32」)を入力できるカスタム スピン ボックスのコードは次のとおりです:

int IconSizeSpinBox::valueFromText(const QString &text) const
{
    static const QRegularExpression regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?"));
    Q_ASSERT(regExp.isValid());

    const QRegularExpressionMatch match = regExp.match(text);
    if (match.isValid())
        return match.captured(1).toInt();
    return 0;
}

QString IconSizeSpinBox::textFromValue(int value) const
{
    return tr("%1 x %1").arg(value);
}

QDoubleSpinBox,QDateTimeEdit,QSlider,Spin Boxes Exampleも参照してください

プロパティの説明

[read-only] cleanText : const QString

このプロパティは、接頭辞、接尾辞、先頭または末尾の空白を除いたスピン ボックスのテキストを保持します。

アクセス関数:

QString cleanText() const

textQSpinBox::prefixQSpinBox::suffixも参照

displayIntegerBase : int

このプロパティは、スピン ボックスの値を表示するために使用されるベースを保持します。

デフォルトの displayIntegerBase の値は 10 です。

アクセス関数:

int displayIntegerBase() const
void setDisplayIntegerBase(int base)

textFromValue() およびvalueFromText()参照してください。

maximum : int

このプロパティは、スピンボックスの最大値を保持します。

このプロパティを設定すると、必要に応じて最小値が調整され、有効な範囲が維持されます。

デフォルトの最大値は99です。

アクセス関数:

int maximum() const
void setMaximum(int max)

setRange() およびspecialValueTextも参照してください

minimum : int

このプロパティは、スピンボックスの最小値を保持します。

このプロパティを設定すると、maximum が必要に応じて調整され、有効な範囲が維持されます。

デフォルトの最小値は 0 です。

アクセス関数:

int minimum() const
void setMinimum(int min)

setRange() およびspecialValueTextも参照してください

prefix : QString

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

接頭辞は、表示値の先頭に付加されます。典型的な使用法は、測定単位または通貨記号を表示することです。例えば

sb->setPrefix("$");

接頭辞の表示をオフにするには、このプロパティに空の文字列を設定します。デフォルトは接頭辞なし。value() ==minimum() およびspecialValueText() が設定されている場合、接頭辞は表示されません。

接頭辞が設定されていない場合、prefix() は空文字列を返します。

アクセス関数:

QString prefix() const
void setPrefix(const QString &prefix)

suffix(),setSuffix(),specialValueText(),setSpecialValueText()も参照

singleStep : int

このプロパティは、ステップ値を保持します。

ユーザーが矢印を使用してスピンボックスの値を変更すると、singleStepの量だけ値がインクリメント/デクリメントされます。デフォルト値は1です。singleStepの値を0未満に設定しても何も起こりません。

アクセス関数

int singleStep() const
void setSingleStep(int val)

stepType : StepType

このプロパティは、ステップタイプを保持する。

ステップタイプには、シングルステップまたは適応10進ステップを指定できます。

アクセス関数:

QAbstractSpinBox::StepType stepType() const
void setStepType(QAbstractSpinBox::StepType stepType)

suffix : QString

このプロパティは、スピンボックスのサフィックスを保持します。

サフィックスは、表示値の末尾に付加されます。典型的な使用方法は、測定単位または通貨記号を表示することです。例えば

sb->setSuffix(" km");

サフィックス表示をオフにするには、このプロパティに空の文字列を設定します。デフォルトは接尾辞なしです。specialValueText() が設定されている場合、minimum() には接尾辞は表示されません。

サフィックスが設定されていない場合、suffix() は空文字列を返します。

アクセス関数:

QString suffix() const
void setSuffix(const QString &suffix)

prefix()、setPrefix()、specialValueText()、setSpecialValueText()も参照してください

value : int

このプロパティは、スピン・ボックスの値を保持します。

setValue() は、新しい値が古い値と異なる場合にvalueChanged() を発行します。value プロパティには、スピンボックスの接頭辞と接尾辞を含む 2 番目の通知シグナルがあります。

アクセス関数

int value() const
void setValue(int val)

通知シグナル

void valueChanged(int i)

メンバ関数ドキュメント

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

parent最小値0、最大値99、ステップ値1のスピンボックスを構築します。

setMinimum(),setMaximum(),setSingleStep()も参照

[virtual noexcept] QSpinBox::~QSpinBox()

デストラクタ。

[override virtual protected] bool QSpinBox::event(QEvent *event)

再インプリメント:QAbstractSpinBox::event(QEvent *event)。

[override virtual protected] void QSpinBox::fixup(QString &input) const

再リンプルメント:QAbstractSpinBox::fixup(QString &input) const.

void QSpinBox::setRange(int minimum, int maximum)

1回の関数呼び出しでminimum,maximum の値を設定する便利な関数です。

setRange(minimum, maximum);

と等価です:

setMinimum(minimum);
setMaximum(maximum);

minimum およびmaximumも参照してください

void QSpinBox::setStepType(QAbstractSpinBox::StepType stepType)

スピンボックスのステップタイプをstepType に設定します。 シングルステップまたはアダプティブ10進ステップです。

アダプティブ・デシマルステップとは、ステップサイズが現在のvalue よりも10の1乗小さい値に継続的に調整されることを意味します。つまり、値が1100のとき、ステップは100に設定されているので、1回ステップアップすると1200になる。1200の場合、ステップアップすると1300になる。負の値の場合、-1100からステップダウンすると-1200になる。

ステップの方向は、100からステップダウンすると値が90ではなく99になるように、エッジケースを処理するために考慮されます。従って、ステップアップの後にステップダウン、またはその逆は、常に開始値に着地します。

これを設定すると、スピンボックスはsingleStep の値を無視するようになりますが、アダプティブデシマルステップが後でオフにされた場合、singleStep が有効になるように保存されます。

注: プロパティstepType のセッター関数です。

stepType()も参照してください

[signal] void QSpinBox::textChanged(const QString &text)

このシグナルは、スピンボックスのテキストが変更されるたびに発行されます。新しいテキストはprefix() とsuffix() でtext に渡されます。

[virtual protected] QString QSpinBox::textFromValue(int value) const

この仮想関数はスピンボックスが与えられたvalue を表示する必要があるときに使用されます。デフォルトの実装は、QWidget::locale().toString() を使用して標準的な方法で印刷されたvalue を含む文字列を返しますが、setGroupSeparatorShown() が設定されていない限り、千区切りは削除されます。再実装は何でも返すことができます。(詳細説明の例を参照のこと)。

注意:QSpinBoxspecialValueText() に対してこの関数を呼び出さないため、prefix() もsuffix() も返り値に含める必要はない。

これを再実装する場合、valueFromText ()とvalidate ()も再実装する必要があるかもしれない。

valueFromText()、validate()、QLocale::groupSeparator()も参照

[override virtual protected] QValidator::State QSpinBox::validate(QString &text, int &pos) const

再実装:QAbstractSpinBox::validate(QString &input, int &pos) const.

[signal] void QSpinBox::valueChanged(int i)

このシグナルは、スピンボックスの値が変更されるたびに発行されます。新しい値の整数値はi で渡されます。

注意: value プロパティの通知シグナルです。

[virtual protected] int QSpinBox::valueFromText(const QString &text) const

この仮想関数は、スピンボックスがユーザーによって入力されたtext を値として解釈する必要があるときに使用されます。

数値以外の方法でスピンボックスの値を表示する必要があるサブクラスは、この関数を再実装する必要があります。

注意:QSpinBoxspecialValueText() を個別に処理します。この関数はその他の値のみを扱います。

textFromValue() およびvalidate()も参照して ください。

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