QIntValidator Class
Die Klasse QIntValidator stellt einen Validator bereit, der sicherstellt, dass eine Zeichenkette eine gültige ganze Zahl innerhalb eines bestimmten Bereichs enthält. Mehr...
Kopfzeile: | #include <QIntValidator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Vererbt: | 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 |
Reimplementierte öffentliche Funktionen
virtual void | fixup(QString &input) const override |
virtual QValidator::State | validate(QString &input, int &pos) const override |
Signale
void | bottomChanged(int bottom) |
void | topChanged(int top) |
Detaillierte Beschreibung
Beispiele für die Verwendung:
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 werden einige Beispiele für Validatoren vorgestellt. In der Praxis würden sie normalerweise mit einem Widget verbunden sein, wie im obigen Beispiel.
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
Beachten Sie, dass der Wert 999
Intermediate zurückgibt. Werte, die aus einer Anzahl von Ziffern bestehen, die gleich oder kleiner als der Maximalwert ist, werden als Zwischenwerte betrachtet. Dies ist beabsichtigt, weil die Ziffer, die verhindert, dass eine Zahl im Bereich liegt, nicht unbedingt die letzte eingegebene Ziffer ist. Dies bedeutet auch, dass eine Zwischenzahl führende Nullen haben kann.
Die Mindest- und Höchstwerte werden in einem Aufruf mit setRange() oder einzeln mit setBottom() und setTop() festgelegt.
QIntValidator verwendet seine locale(), um die Zahl zu interpretieren. In arabischen Gebietsschemata akzeptiert QIntValidator zum Beispiel arabische Ziffern.
Hinweis: Die Einstellung QLocale::NumberOptions auf locale() hat ebenfalls Einfluss auf die Art und Weise, wie die Zahl interpretiert wird. Da zum Beispiel QLocale::RejectGroupSeparator nicht standardmäßig 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 Line Edits Example.
Dokumentation der Eigenschaft
bottom : int
Diese Eigenschaft enthält den niedrigsten akzeptablen Wert des Validators
Standardmäßig wird der Wert dieser Eigenschaft von der niedrigsten verfügbaren Ganzzahl mit Vorzeichen abgeleitet (-2147483648).
Zugriffsfunktionen:
int | bottom() const |
void | setBottom(int) |
Benachrichtigungssignal:
void | bottomChanged(int bottom) |
Siehe auch setRange().
top : int
Diese Eigenschaft enthält den höchsten akzeptablen Wert des Validators
Standardmäßig wird der Wert dieser Eigenschaft von der höchsten verfügbaren Ganzzahl mit Vorzeichen abgeleitet (2147483647).
Zugriffsfunktionen:
int | top() const |
void | setTop(int) |
Benachrichtigungssignal:
void | topChanged(int top) |
Siehe auch setRange().
Dokumentation der Mitgliedsfunktionen
[explicit]
QIntValidator::QIntValidator(QObject *parent = nullptr)
Konstruiert einen Validator mit einem parent Objekt, das alle Ganzzahlen akzeptiert.
QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = nullptr)
Konstruiert einen Validator mit einem parent, der ganze Zahlen von minimum bis einschließlich maximum akzeptiert.
[virtual noexcept]
QIntValidator::~QIntValidator()
Zerstört den Validator.
[override virtual]
void QIntValidator::fixup(QString &input) const
Reimplements: QValidator::fixup(QString &input) const.
void QIntValidator::setRange(int bottom, int top)
Legt den Bereich 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
Reimplements: QValidator::validate(QString &input, int &pos) const.
Gibt Acceptable zurück, wenn input eine Ganzzahl innerhalb des gültigen Bereichs ist. Wenn input höchstens so viele Ziffern wie der obere Teil des Bereichs hat oder ein Präfix einer Ganzzahl im gültigen Bereich ist, wird Intermediate zurückgegeben. Andernfalls wird Invalid zurückgegeben.
Wenn der gültige Bereich nur aus positiven ganzen Zahlen besteht (z. B. 32 bis 100) und input eine negative ganze Zahl ist, wird Ungültig zurückgegeben. (Besteht der Bereich dagegen aus negativen ganzen Zahlen (z. B. -100 bis -32) und ist input eine positive ganze Zahl ohne führendes Pluszeichen, wird Intermediate zurückgegeben, da der Benutzer möglicherweise gerade dabei ist, das Minuszeichen einzugeben (insbesondere bei Sprachen von rechts nach links).
Ä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 sonst nicht in der Lage wäre, einen Wert von 49 auf 51 zu ändern.
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
Standardmäßig wird der Parameter pos von diesem Validator nicht verwendet.
© 2025 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.