QIntValidator Class
La clase QIntValidator proporciona un validador que asegura que una cadena contiene un entero válido dentro de un rango especificado. Más...
| Cabecera: | #include <QIntValidator> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Hereda: | QValidator |
Propiedades
Funciones públicas
| 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 |
Funciones públicas reimplementadas
| virtual void | fixup(QString &input) const override |
| virtual QValidator::State | validate(QString &input, int &pos) const override |
Señales
| void | bottomChanged(int bottom) |
| void | topChanged(int top) |
Descripción detallada
Ejemplos de uso:
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);
A continuación presentamos algunos ejemplos de validadores. En la práctica estarían normalmente asociados a un widget como en el ejemplo anterior.
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
Observe que el valor 999 devuelve Intermedio. Los valores formados por un número de dígitos igual o inferior al valor máximo se consideran intermedios. Esto se debe a que el dígito que impide que un número esté dentro del rango no es necesariamente el último dígito tecleado. Esto también significa que un número intermedio puede tener ceros a la izquierda.
Los valores mínimo y máximo se establecen en una llamada con setRange(), o individualmente con setBottom() y setTop().
QIntValidator utiliza su locale() para interpretar el número. Por ejemplo, en locales árabes, QIntValidator aceptará dígitos árabes.
Nota: La configuración de QLocale::NumberOptions en locale() también afecta a la forma en que se interpreta el número. Por ejemplo, como QLocale::RejectGroupSeparator no está configurado por defecto, el validador aceptará separadores de grupo. Por lo tanto, se recomienda utilizar QLocale::toInt() para obtener el valor numérico.
Véase también QDoubleValidator, QRegularExpressionValidator, QLocale::toInt(), y Ejemplo de edición de líneas.
Documentación de propiedades
bottom : int
Esta propiedad contiene el valor más bajo aceptable del validador.
Por defecto, el valor de esta propiedad se deriva del número entero con signo más bajo disponible (-2147483648).
Funciones de acceso:
| int | bottom() const |
| void | setBottom(int) |
Señal del notificador:
| void | bottomChanged(int bottom) |
Véase también setRange().
top : int
Esta propiedad contiene el valor más alto aceptable del validador.
Por defecto, el valor de esta propiedad se deriva del entero con signo más alto disponible (2147483647).
Funciones de acceso:
| int | top() const |
| void | setTop(int) |
Señal del notificador:
| void | topChanged(int top) |
Véase también setRange().
Documentación de las funciones miembro
[explicit] QIntValidator::QIntValidator(QObject *parent = nullptr)
Construye un validador con un objeto parent que acepta todos los enteros.
QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = nullptr)
Construye un validador con un parent, que acepta enteros de minimum a maximum inclusive.
[virtual noexcept] QIntValidator::~QIntValidator()
Destruye el validador.
[override virtual] void QIntValidator::fixup(QString &input) const
Reimplementa: QValidator::fixup(QString &input) const.
void QIntValidator::setRange(int bottom, int top)
Establece el rango del validador para que sólo acepte enteros entre bottom y top, ambos inclusive.
[override virtual] QValidator::State QIntValidator::validate(QString &input, int &pos) const
Reimplementa: QValidator::validate(QString &input, int &pos) const.
Devuelve Acceptable si input es un entero dentro del rango válido. Si input tiene como máximo tantos dígitos como el tope del rango, o es un prefijo de un entero en el rango válido, devuelve Intermediate. En caso contrario, devuelve Invalid.
Si el rango válido está formado sólo por enteros positivos (por ejemplo, de 32 a 100) y input es un entero negativo, se devuelve No válido. (Por otro lado, si el rango consiste en enteros negativos (por ejemplo, de -100 a -32) y input es un entero positivo sin signo más a la izquierda, entonces se devuelve Intermedio, porque el usuario podría estar a punto de teclear el signo menos (especialmente para lenguajes de derecha a izquierda).
Del mismo modo, si el rango válido está entre 46 y 53, entonces 41 y 59 se evaluarán como Intermediate, ya que de otro modo el usuario no podría cambiar un valor de 49 a 51.
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
Por defecto, este validador no utiliza el parámetro pos.
© 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.