QIntValidator Class

QIntValidator クラスは、文字列が指定した範囲内の有効な整数を含むことを保証するバリデータを提供します。詳細...

Header: #include <QIntValidator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: QValidator

プロパティ

パブリック関数

QIntValidator(QObject *parent = nullptr)
QIntValidator(int minimum, int maximum, QObject *parent = nullptr)
virtual ~QIntValidator()
int bottom() const
void setBottom(int)
void setRange(int bottom, int top)
void setTop(int)
int top() const

再実装パブリック関数

virtual void fixup(QString &input) const override
virtual QValidator::State validate(QString &input, int &pos) const override

シグナル

void bottomChanged(int bottom)
void topChanged(int top)

詳細説明

使用例

QValidator *validator = new QIntValidator(100, 999, this);
QLineEdit *edit = new QLineEdit(this);

// the edit lineedit will only accept integers between 100 and 999
edit->setValidator(validator);

以下にバリデータの例をいくつか示します。実際には、上の例のようにウィジェットに関連付けられます。

QString str;
int pos = 0;
QIntValidator v(100, 900, this);

str = "1";
v.validate(str, pos);     // returns Intermediate
str = "012";
v.validate(str, pos);     // returns Intermediate

str = "123";
v.validate(str, pos);     // returns Acceptable
str = "678";
v.validate(str, pos);     // returns Acceptable

str = "999";
v.validate(str, pos);    // returns Intermediate

str = "1234";
v.validate(str, pos);     // returns Invalid
str = "-123";
v.validate(str, pos);     // returns Invalid
str = "abc";
v.validate(str, pos);     // returns Invalid
str = "12cm";
v.validate(str, pos);     // returns Invalid

999 は中間値を返すことに注目。最大値以下の桁数で構成される値は、中間値とみなされます。これは、数値が範囲内にあることを妨げる桁が、必ずしも入力された最後の桁であるとは限らないためです。これはまた、中間的な数値は先頭にゼロを持つことができることを意味する。

最小値と最大値は、setRange() を使用して 1 回の呼び出しで設定するか、setBottom() およびsetTop() を使用して個別に設定します。

QIntValidator は、locale() を使用して数値を解釈します。例えば、アラビア語のロケールでは、QIntValidator はアラビア数字を受け入れます。

注意: locale() で設定されたQLocale::NumberOptions も、数値の解釈方法に影響します。たとえばQLocale::RejectGroupSeparator はデフォルトでは設定されていないので、 バリデータはグループ区切り文字を受け付ける。したがって、数値を取得するにはQLocale::toInt() を使用することを推奨する。

QDoubleValidatorQRegularExpressionValidatorQLocale::toInt()、および行編集の例も参照のこと

プロパティの説明

bottom : int

このプロパティは、バリデータの最低許容値を保持します。

デフォルトでは、このプロパティの値は利用可能な最小の符号付き整数 (-2147483648) から取得される。

アクセス関数

int bottom() const
void setBottom(int)

通知シグナル:

void bottomChanged(int bottom)

setRange()も参照

top : int

このプロパティはバリデータの最高値を保持します。

デフォルトでは、このプロパティの値は利用可能な最大の符号付き整数値 (2147483647) になります。

アクセス関数:

int top() const
void setTop(int)

Notifier シグナル:

void topChanged(int top)

setRange()も参照

メンバ関数のドキュメント

[explicit] QIntValidator::QIntValidator(QObject *parent = nullptr)

すべての整数を受け付けるparent オブジェクトを持つバリデータを作成します。

QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = nullptr)

minimum からmaximum までの整数を受け付けるparent 、 バリデータを構築します。

[virtual noexcept] QIntValidator::~QIntValidator()

バリデータを破棄します。

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

バリデータを破棄します:QValidator::fixup(QString &input) const.

void QIntValidator::setRange(int bottom, int top)

バリデータの入力範囲を設定し、bottom からtop までの整数値のみを受け付けるようにします。

[override virtual] QValidator::State QIntValidator::validate(QString &input, int &pos) const

再インプリメント:QValidator::validate(QString &input, int &pos) const.

input が有効範囲内の整数であればAcceptable を返します。input の桁数が有効範囲の先頭と同じか、有効範囲内の整数のプレフィックスである場合、Intermediate を返します。そうでない場合は、Invalid を返す。

有効範囲が正の整数だけ(例えば32から100)で構成され、input が負の整数である場合、Invalid が返される。(一方、有効範囲が負の整数(例えば、-100から-32)で、input が正の整数で、先頭にプラス記号がない場合は、Intermediateが返されます。これは、ユーザがマイナスを入力しようとしているところかもしれないからです(特に右から左への言語の場合)。

同様に、有効範囲が46から53の場合、41と59はIntermediate として評価されます。

int pos = 0;

s = "abc";
v.validate(s, pos);    // returns Invalid

s = "5";
v.validate(s, pos);    // returns Intermediate

s = "50";
v.validate(s, pos);    // returns Acceptable

デフォルトでは、このバリデータはpos パラメータを使用しません。

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