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 |
text 、QSpinBox::prefix 、QSpinBox::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);
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() が設定されていない限り、千区切りは削除されます。再実装は何でも返すことができます。(詳細説明の例を参照のこと)。
注意:QSpinBox はspecialValueText() に対してこの関数を呼び出さないため、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 を値として解釈する必要があるときに使用されます。
数値以外の方法でスピンボックスの値を表示する必要があるサブクラスは、この関数を再実装する必要があります。
注意:QSpinBox はspecialValueText() を個別に処理します。この関数はその他の値のみを扱います。
textFromValue() およびvalidate()も参照して ください。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。