QIntValidator Class
Die Klasse „QIntValidator“ stellt einen Validator bereit, der sicherstellt, dass eine Zeichenkette eine gültige Ganzzahl innerhalb eines festgelegten Bereichs enthält. Mehr...
| Header: | #include <QIntValidator> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Erbt von: | QValidator |
Eigenschaften
Öffentliche Funktionen
| 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 |
Neu implementierte öffentliche Funktionen
| virtual void | fixup(QString &input) const override |
| virtual QValidator::State | validate(QString &input, int &pos) const override |
Ausführliche Beschreibung
Anwendungsbeispiel:
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);Im Folgenden stellen wir einige Beispiele für Validatoren vor. In der Praxis würden diese normalerweise, wie im obigen Beispiel, einem Widget zugeordnet werden.
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 InvalidBeachten Sie, dass die Funktion „ 999 “ den Wert „Intermediate“ zurückgibt. Werte, deren Ziffernanzahl dem Maximalwert entspricht oder darunter liegt, gelten als „Intermediate“. Dies ist beabsichtigt, da die Ziffer, die verhindert, dass eine Zahl im zulässigen Bereich liegt, nicht unbedingt die zuletzt eingegebene Ziffer ist. Das bedeutet auch, dass eine „Intermediate“-Zahl führende Nullen enthalten kann.
Der Minimal- und der Maximalwert werden entweder in einem Aufruf mit ` setRange()` oder einzeln mit ` setBottom()` und ` setTop()` festgelegt.
QIntValidator verwendet seine ` locale()` zur Interpretation der Zahl. In arabischen Sprachumgebungen akzeptiert QIntValidator beispielsweise arabische Ziffern.
Hinweis: Die in „ locale “ () festgelegten „ QLocale::NumberOptions “ beeinflussen ebenfalls die Art und Weise, wie die Zahl interpretiert wird. Da beispielsweise „ QLocale::RejectGroupSeparator “ standardmäßig nicht gesetzt ist, akzeptiert der Validator Gruppentrennzeichen. Es wird daher empfohlen, „ QLocale::toInt “ () zu verwenden, um den numerischen Wert zu erhalten.
Siehe auch „ QDoubleValidator“ , „ QRegularExpressionValidator “, „ QLocale::toInt()“ und das Beispiel zu Zeilenfeldern.
Dokumentation zu den Eigenschaften
bottom : int
Diese Eigenschaft enthält den niedrigsten zulässigen Wert des Validators
Standardmäßig wird der Wert dieser Eigenschaft aus der kleinsten verfügbaren vorzeichenbehafteten Ganzzahl (-2147483648) abgeleitet.
Zugriffsfunktionen:
| int | bottom() const |
| void | setBottom(int) |
Siehe auch „ setRange()“.
top : int
Diese Eigenschaft enthält den höchsten zulässigen Wert des Validators
Standardmäßig wird der Wert dieser Eigenschaft aus der höchsten verfügbaren vorzeichenbehafteten Ganzzahl (2147483647) abgeleitet.
Zugriffsfunktionen:
| int | top() const |
| void | setTop(int) |
Siehe auch „ setRange()“.
Dokumentation zu den Member-Funktionen
[explicit] QIntValidator::QIntValidator(QObject *parent = nullptr)
Erstellt einen Validator mit einem „ parent “-Objekt, das alle Ganzzahlen akzeptiert.
QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = nullptr)
Erstellt einen Validator mit einem „ parent “, der Ganzzahlen im Bereich von minimum bis einschließlich maximum akzeptiert.
[virtual noexcept] QIntValidator::~QIntValidator()
Löscht den Validator.
[override virtual] void QIntValidator::fixup(QString &input) const
Implementiert neu: QValidator::fixup(QString &input) const.
void QIntValidator::setRange(int bottom, int top)
Legt den Wertebereich des Validators so fest, dass nur ganze Zahlen zwischen bottom und top (einschließlich) akzeptiert werden.
[override virtual] QValidator::State QIntValidator::validate(QString &input, int &pos) const
Implementiert: ` QValidator::validate(QString &input, int &pos) const`.
Gibt ` Acceptable ` zurück, wenn ` input ` eine ganze Zahl innerhalb des gültigen Bereichs ist. Wenn ` input ` höchstens so viele Ziffern hat wie die Obergrenze des Bereichs oder ein Präfix einer ganzen Zahl im gültigen Bereich ist, wird ` Intermediate` zurückgegeben. Andernfalls wird ` Invalid` zurückgegeben.
input Wenn der gültige Bereich nur aus positiven ganzen Zahlen besteht (z. B. 32 bis 100) und „ input “ eine negative ganze Zahl ist, wird „Invalid“ zurückgegeben. (Besteht der Bereich hingegen aus negativen ganzen Zahlen (z. B. -100 bis -32) und ist „ “ eine positive ganze Zahl ohne vorangestelltes Pluszeichen, so wird „Intermediate“ zurückgegeben, da der Benutzer möglicherweise gerade dabei ist, das Minuszeichen einzugeben (insbesondere bei Sprachen, die von rechts nach links geschrieben werden).
Ähnlich verhält es sich, wenn der gültige Bereich zwischen 46 und 53 liegt: Dann werden 41 und 59 als „ Intermediate “ ausgewertet, da der Benutzer andernfalls einen Wert nicht von 49 auf 51 ändern könnte.
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 AcceptableStandardmäßig wird der Parameter „ pos “ von diesem Validator nicht verwendet.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.