QSpinBox Class
La clase QSpinBox proporciona un widget de caja giratoria. Más...
| Cabecera: | #include <QSpinBox> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Hereda: | QAbstractSpinBox |
Propiedades
|
|
Funciones públicas
| QSpinBox(QWidget *parent = nullptr) | |
| virtual | ~QSpinBox() |
| QString | cleanText() const |
| int | displayIntegerBase() const |
| int | maximum() const |
| int | minimum() const |
| QString | prefix() const |
| void | setDisplayIntegerBase(int base) |
| void | setMaximum(int max) |
| void | setMinimum(int min) |
| void | setPrefix(const QString &prefix) |
| void | setRange(int minimum, int maximum) |
| void | setSingleStep(int val) |
| void | setStepType(QAbstractSpinBox::StepType stepType) |
| void | setSuffix(const QString &suffix) |
| int | singleStep() const |
| QAbstractSpinBox::StepType | stepType() const |
| QString | suffix() const |
| int | value() const |
Ranuras públicas
| void | setValue(int val) |
Señales
| void | textChanged(const QString &text) |
| void | valueChanged(int i) |
Funciones protegidas
| virtual QString | textFromValue(int value) const |
| virtual int | valueFromText(const QString &text) const |
Funciones protegidas reimplementadas
| virtual bool | event(QEvent *event) override |
| virtual void | fixup(QString &input) const override |
| virtual QValidator::State | validate(QString &text, int &pos) const override |
Descripción Detallada

QSpinBox está diseñado para manejar enteros y conjuntos discretos de valores (por ejemplo, nombres de meses); utilice QDoubleSpinBox para valores de coma flotante.
QSpinBox permite al usuario elegir un valor haciendo clic en los botones arriba/abajo o pulsando arriba/abajo en el teclado para aumentar/disminuir el valor mostrado actualmente. El usuario también puede introducir el valor manualmente. El cuadro de giro admite valores enteros, pero puede ampliarse para utilizar diferentes cadenas con validate(), textFromValue() y valueFromText().
Cada vez que cambia el valor, QSpinBox emite las señales valueChanged() y textChanged(), la primera proporciona un int y la segunda un QString. La señal textChanged() proporciona el valor con prefix() y suffix(). El valor actual puede obtenerse con value() y fijarse con setValue().
Haciendo clic en los botones arriba/abajo o utilizando las flechas arriba y abajo del acelerador del teclado aumentará o disminuirá el valor actual en pasos de tamaño singleStep(). Si desea cambiar este comportamiento puede reimplementar la función virtual stepBy(). El valor mínimo y máximo y el tamaño del paso pueden establecerse utilizando uno de los constructores, y pueden modificarse posteriormente con setMinimum(), setMaximum() y setSingleStep().
La mayoría de las cajas de giro son direccionales, pero QSpinBox también puede funcionar como una caja de giro circular, es decir, si el rango es 0-99 y el valor actual es 99, al hacer clic en "arriba" dará 0 si wrapping() se establece en true. Utilice setWrapping() si desea un comportamiento circular.
Al valor mostrado se le pueden anteponer y añadir cadenas arbitrarias que indiquen, por ejemplo, la moneda o la unidad de medida. Véase setPrefix() y setSuffix(). El texto del cuadro de giro se recupera con text() (que incluye cualquier prefix() y suffix()), o con cleanText() (que no tiene prefix(), ni suffix() ni espacios en blanco iniciales o finales).
A menudo es deseable dar al usuario una opción especial (a menudo por defecto) además del rango de valores numéricos. Véase setSpecialValueText() para saber cómo hacerlo con QSpinBox.
Subclasificación de QSpinBox
Si el uso de prefix(), suffix(), y specialValueText() no proporcionan suficiente control, puede subclasificar QSpinBox y reimplementar valueFromText() y textFromValue(). Por ejemplo, este es el código para una caja giratoria personalizada que permite al usuario introducir el tamaño de los iconos (por ejemplo, "32 x 32"):
int IconSizeSpinBox::valueFromText(const QString &text) const { static const QRegularExpression regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?")); Q_ASSERT(regExp.isValid()); const QRegularExpressionMatch match = regExp.match(text); if (match.isValid()) return match.captured(1).toInt(); return 0; } QString IconSizeSpinBox::textFromValue(int value) const { return tr("%1 x %1").arg(value); }
Véase también QDoubleSpinBox, QDateTimeEdit, QSlider, y Ejemplo de Spin Boxes.
Documentación de propiedades
[read-only] cleanText : QString
Esta propiedad contiene el texto del cuadro de giro excluyendo cualquier prefijo, sufijo o espacio en blanco inicial o final.
Funciones de acceso:
| QString | cleanText() const |
Véase también text, QSpinBox::prefix, y QSpinBox::suffix.
displayIntegerBase : int
Esta propiedad contiene la base utilizada para mostrar el valor de la casilla giratoria
El valor por defecto de displayIntegerBase es 10.
Funciones de acceso:
| int | displayIntegerBase() const |
| void | setDisplayIntegerBase(int base) |
Véase también textFromValue() y valueFromText().
maximum : int
Esta propiedad contiene el valor máximo de la caja de giro.
Al establecer esta propiedad se ajusta el mínimo si es necesario, para asegurar que el rango sigue siendo válido.
El valor máximo por defecto es 99.
Funciones de acceso:
| int | maximum() const |
| void | setMaximum(int max) |
Véase también setRange() y specialValueText.
minimum : int
Esta propiedad contiene el valor mínimo de la caja de giro.
Cuando se establece esta propiedad, la dirección maximum se ajusta si es necesario para asegurar que el rango sigue siendo válido.
El valor mínimo por defecto es 0.
Funciones de acceso:
| int | minimum() const |
| void | setMinimum(int min) |
Véase también setRange() y specialValueText.
prefix : QString
Esta propiedad contiene el prefijo del cuadro de giro
El prefijo se antepone al inicio del valor mostrado. Su uso típico es mostrar una unidad de medida o un símbolo de moneda. Por ejemplo:
sb->setPrefix("$");
Para desactivar la visualización del prefijo, establezca esta propiedad a una cadena vacía. El valor por defecto es sin prefijo. El prefijo no se muestra cuando se establece value() == minimum() y specialValueText().
Si no se define ningún prefijo, prefix() devuelve una cadena vacía.
Funciones de acceso:
| QString | prefix() const |
| void | setPrefix(const QString &prefix) |
Véase también suffix(), setSuffix(), specialValueText() y setSpecialValueText().
singleStep : int
Esta propiedad contiene el valor del paso
Cuando el usuario utiliza las flechas para cambiar el valor del cuadro de giro, el valor se incrementará/disminuirá en la cantidad de singleStep. El valor por defecto es 1. Establecer un valor de singleStep menor que 0 no hace nada.
Funciones de acceso:
| int | singleStep() const |
| void | setSingleStep(int val) |
stepType : StepType
Esta propiedad contiene el tipo de paso.
El tipo de paso puede ser paso único o paso decimal adaptativo.
Funciones de acceso:
| QAbstractSpinBox::StepType | stepType() const |
| void | setStepType(QAbstractSpinBox::StepType stepType) |
suffix : QString
Esta propiedad contiene el sufijo del cuadro de giro
El sufijo se añade al final del valor mostrado. Su uso típico es mostrar una unidad de medida o un símbolo de moneda. Por ejemplo:
sb->setSuffix(" km");
Para desactivar la visualización del sufijo, establezca esta propiedad a una cadena vacía. El valor por defecto es sin sufijo. El sufijo no se muestra para minimum() si se establece specialValueText().
Si no se define ningún sufijo, suffix() devuelve una cadena vacía.
Funciones de acceso:
| QString | suffix() const |
| void | setSuffix(const QString &suffix) |
Véase también prefix(), setPrefix(), specialValueText() y setSpecialValueText().
value : int
Esta propiedad contiene el valor del cuadro de giro
setValue() emitirá valueChanged() si el nuevo valor es diferente del anterior. La propiedad value tiene una segunda señal notificadora que incluye el prefijo y el sufijo del cuadro de giro.
Funciones de acceso:
| int | value() const |
| void | setValue(int val) |
Señal notificadora:
| void | valueChanged(int i) |
Documentación de funciones miembro
[explicit] QSpinBox::QSpinBox(QWidget *parent = nullptr)
Construye una caja giratoria con 0 como valor mínimo y 99 como valor máximo, un valor de paso de 1. El valor se establece inicialmente en 0. Se emparenta con parent.
Véase también setMinimum(), setMaximum(), y setSingleStep().
[virtual noexcept] QSpinBox::~QSpinBox()
Destructor.
[override virtual protected] bool QSpinBox::event(QEvent *event)
Reimplementa: QAbstractSpinBox::event(QEvent *event).
[override virtual protected] void QSpinBox::fixup(QString &input) const
Reimplementa: QAbstractSpinBox::fixup(QString &input) const.
void QSpinBox::setRange(int minimum, int maximum)
Función de conveniencia para establecer los valores minimum, y maximum con una sola llamada a la función.
setRange(minimum, maximum);es equivalente a:
setMinimum(minimum); setMaximum(maximum);
Véase también minimum y maximum.
void QSpinBox::setStepType(QAbstractSpinBox::StepType stepType)
Establece el tipo de paso para la caja de giro en stepType, que es paso único o paso decimal adaptativo.
Paso decimal adaptativo significa que el tamaño del paso se ajustará continuamente a una potencia de diez por debajo del valor actual value. Así, cuando el valor es 1100, el paso se establece en 100, por lo que subir una vez lo aumenta a 1200. Si el valor es 1200, al subir el escalón llega a 1300. Para valores negativos, al bajar de -1100 se llega a -1200.
La dirección del paso se tiene en cuenta para manejar los casos extremos, de modo que bajar de 100 lleva el valor a 99 en lugar de a 90. De este modo, un paso hacia arriba seguido de un paso hacia abajo lleva el valor a 99 en lugar de a 90. Por lo tanto, un paso hacia arriba seguido de un paso hacia abajo - o viceversa - siempre aterriza en el valor inicial; 99 -> 100 -> 99.
Establecer esto hará que el cuadro de giro no tenga en cuenta el valor de singleStep, aunque se conserva para que singleStep tenga efecto si el paso decimal adaptativo se desactiva más tarde.
Nota: Función Setter para la propiedad stepType.
Véase también stepType().
[signal] void QSpinBox::textChanged(const QString &text)
Esta señal se emite cada vez que se cambia el texto del cuadro de giro. El nuevo texto se pasa en text con prefix() y suffix().
[virtual protected] QString QSpinBox::textFromValue(int value) const
Esta función virtual es utilizada por el cuadro de giro siempre que necesite mostrar el value dado. La implementación por defecto devuelve una cadena que contiene value impresa de la forma estándar utilizando QWidget::locale().toString(), pero con el separador de miles eliminado a menos que se establezca setGroupSeparatorShown(). Las reimplementaciones pueden devolver cualquier cosa. (Véase el ejemplo en la descripción detallada).
Nota: QSpinBox no llama a esta función para specialValueText() y que ni prefix() ni suffix() deben incluirse en el valor de retorno.
Si reimplementa esto, puede que también necesite reimplementar valueFromText() y validate().
Véase también valueFromText(), validate() y QLocale::groupSeparator().
[override virtual protected] QValidator::State QSpinBox::validate(QString &text, int &pos) const
Reimplementa: QAbstractSpinBox::validate(QString &input, int &pos) const.
[signal] void QSpinBox::valueChanged(int i)
Esta señal se emite cada vez que se cambia el valor del cuadro de giro. El valor entero del nuevo valor se pasa en i.
Nota: Señal notificadora para la propiedad value.
[virtual protected] int QSpinBox::valueFromText(const QString &text) const
Esta función virtual es utilizada por el cuadro de giro siempre que necesite interpretar text introducido por el usuario como un valor.
Las subclases que necesiten mostrar los valores del cuadro de giro de forma no numérica necesitan reimplementar esta función.
Nota: QSpinBox trata specialValueText() por separado; esta función sólo se ocupa de los demás valores.
Véase también textFromValue() y validate().
© 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.