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() を使用することを推奨する。
QDoubleValidator 、QRegularExpressionValidator 、QLocale::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。