QAbstractSpinBox Class
La clase QAbstractSpinBox proporciona un spinbox y una línea de edición para mostrar valores. Más...
| Cabecera: | #include <QAbstractSpinBox> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Hereda: | QWidget |
| Heredado por: |
Tipos públicos
| enum | ButtonSymbols { UpDownArrows, PlusMinus, NoButtons } |
| enum | CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue } |
| flags | StepEnabled |
| enum | StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled } |
| enum | StepType { DefaultStepType, AdaptiveDecimalStepType } |
Propiedades
|
|
Funciones públicas
| QAbstractSpinBox(QWidget *parent = nullptr) | |
| virtual | ~QAbstractSpinBox() |
| Qt::Alignment | alignment() const |
| QAbstractSpinBox::ButtonSymbols | buttonSymbols() const |
| QAbstractSpinBox::CorrectionMode | correctionMode() const |
| virtual void | fixup(QString &input) const |
| bool | hasAcceptableInput() const |
| bool | hasFrame() const |
| void | interpretText() |
| bool | isAccelerated() const |
| bool | isGroupSeparatorShown() const |
| bool | isReadOnly() const |
| bool | keyboardTracking() const |
| void | setAccelerated(bool on) |
| void | setAlignment(Qt::Alignment flag) |
| void | setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs) |
| void | setCorrectionMode(QAbstractSpinBox::CorrectionMode cm) |
| void | setFrame(bool) |
| void | setGroupSeparatorShown(bool shown) |
| void | setKeyboardTracking(bool kt) |
| void | setReadOnly(bool r) |
| void | setSpecialValueText(const QString &txt) |
| void | setWrapping(bool w) |
| QString | specialValueText() const |
| virtual void | stepBy(int steps) |
| QString | text() const |
| virtual QValidator::State | validate(QString &input, int &pos) const |
| bool | wrapping() const |
Funciones públicas reimplementadas
| virtual bool | event(QEvent *event) override |
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const override |
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Ranuras públicas
Señales
| void | editingFinished() |
(since 6.10) void | returnPressed() |
Funciones protegidas
| virtual void | initStyleOption(QStyleOptionSpinBox *option) const |
| QLineEdit * | lineEdit() const |
| void | setLineEdit(QLineEdit *lineEdit) |
| virtual QAbstractSpinBox::StepEnabled | stepEnabled() const |
Funciones protegidas reimplementadas
| virtual void | changeEvent(QEvent *event) override |
| virtual void | closeEvent(QCloseEvent *event) override |
| virtual void | contextMenuEvent(QContextMenuEvent *event) override |
| virtual void | focusInEvent(QFocusEvent *event) override |
| virtual void | focusOutEvent(QFocusEvent *event) override |
| virtual void | hideEvent(QHideEvent *event) override |
| virtual void | keyPressEvent(QKeyEvent *event) override |
| virtual void | keyReleaseEvent(QKeyEvent *event) override |
| virtual void | mouseMoveEvent(QMouseEvent *event) override |
| virtual void | mousePressEvent(QMouseEvent *event) override |
| virtual void | mouseReleaseEvent(QMouseEvent *event) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | showEvent(QShowEvent *event) override |
| virtual void | timerEvent(QTimerEvent *event) override |
| virtual void | wheelEvent(QWheelEvent *event) override |
Descripción detallada
La clase está diseñada como una superclase común para widgets como QSpinBox, QDoubleSpinBox y QDateTimeEdit
Estas son las principales propiedades de la clase:
- text: El texto que se muestra en el QAbstractSpinBox.
- alignment: La alineación del texto en el QAbstractSpinBox.
- wrapping: Si el QAbstractSpinBox envuelve desde el valor mínimo hasta el valor máximo y viceversa.
QAbstractSpinBox provee una función virtual stepBy() que es llamada cada vez que el usuario activa un paso. Esta función toma un valor entero para significar cuantos pasos fueron tomados. Por ejemplo, si se pulsa Qt::Key_Down, se llamará a stepBy(-1).
Cuando el usuario dispara un paso mientras mantiene presionado Qt::ControlModifier, QAbstractSpinBox da 10 pasos en lugar de dar un solo paso. Este modificador de paso afecta a los eventos de rueda, eventos de tecla e interacción con los botones del spinbox. Ten en cuenta que en macOS, Control corresponde a la tecla Comando.
Desde Qt 5.12, QStyle::SH_SpinBox_StepModifier puede utilizarse para seleccionar qué Qt::KeyboardModifier aumenta la velocidad de paso. Qt::NoModifier desactiva esta función.
QAbstractSpinBox también proporciona una función virtual stepEnabled() para determinar si se permite subir/bajar el paso en cualquier punto. Esta función devuelve un conjunto de bits de StepEnabled.
Ver también QAbstractSlider, QSpinBox, QDoubleSpinBox, QDateTimeEdit, y Ejemplo de Spin Boxes.
Documentación de tipos de miembros
enum QAbstractSpinBox::ButtonSymbols
Este tipo enum describe los símbolos que pueden aparecer en los botones de una caja de giro.

| Constante | Valor | Descripción |
|---|---|---|
QAbstractSpinBox::UpDownArrows | 0 | Flechitas al estilo clásico. |
QAbstractSpinBox::PlusMinus | 1 | Símbolos+ y -. |
QAbstractSpinBox::NoButtons | 2 | No mostrar botones. |
Véase también QAbstractSpinBox::buttonSymbols.
enum QAbstractSpinBox::CorrectionMode
Este tipo enum describe el modo que utilizará el spinbox para corregir un valor Intermediate si finaliza la edición.
| Constante | Valor | Descripción |
|---|---|---|
QAbstractSpinBox::CorrectToPreviousValue | 0 | El spinbox revertirá al último valor válido. |
QAbstractSpinBox::CorrectToNearestValue | 1 | El spinbox revertirá al valor válido más cercano. |
Ver también correctionMode.
enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled
| Constante | Valor |
|---|---|
QAbstractSpinBox::StepNone | 0x00 |
QAbstractSpinBox::StepUpEnabled | 0x01 |
QAbstractSpinBox::StepDownEnabled | 0x02 |
El tipo StepEnabled es un typedef para QFlags<StepEnabledFlag>. Almacena una combinación OR de valores StepEnabledFlag.
enum QAbstractSpinBox::StepType
| Constante | Valor |
|---|---|
QAbstractSpinBox::DefaultStepType | 0 |
QAbstractSpinBox::AdaptiveDecimalStepType | 1 |
Documentación de propiedades
accelerated : bool
Esta propiedad mantiene si la caja de giro acelerará la frecuencia de los pasos al pulsar los botones de subir/bajar pasos.
Si se activa, la caja de rotación aumentará/disminuirá el valor más rápido cuanto más tiempo se mantenga pulsado el botón.
Funciones de acceso:
| bool | isAccelerated() const |
| void | setAccelerated(bool on) |
[read-only] acceptableInput : bool
Esta propiedad indica si la entrada satisface la validación actual.
Funciones de acceso:
| bool | hasAcceptableInput() const |
Véase también validate(), fixup(), y correctionMode.
alignment : Qt::Alignment
Esta propiedad contiene la alineación de la caja de giro
Los valores posibles son Qt::AlignLeft, Qt::AlignRight, y Qt::AlignHCenter.
Por defecto, la alineación es Qt::AlignLeft
Si se intenta establecer la alineación con una combinación de banderas ilegal no se hace nada.
Funciones de acceso:
| Qt::Alignment | alignment() const |
| void | setAlignment(Qt::Alignment flag) |
Véase también Qt::Alignment.
buttonSymbols : ButtonSymbols
Esta propiedad contiene el modo actual del símbolo del botón
Los valores posibles pueden ser UpDownArrows o PlusMinus. El valor por defecto es UpDownArrows.
Tenga en cuenta que algunos estilos pueden representar PlusMinus y UpDownArrows de forma idéntica.
Funciones de acceso:
| QAbstractSpinBox::ButtonSymbols | buttonSymbols() const |
| void | setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs) |
Véase también ButtonSymbols.
correctionMode : CorrectionMode
Esta propiedad contiene el modo para corregir un valor de Intermediate si finaliza la edición.
El modo por defecto es QAbstractSpinBox::CorrectToPreviousValue.
Funciones de acceso:
| QAbstractSpinBox::CorrectionMode | correctionMode() const |
| void | setCorrectionMode(QAbstractSpinBox::CorrectionMode cm) |
Véase también acceptableInput, validate(), y fixup().
frame : bool
Esta propiedad indica si la caja de rotación se dibuja con un marco.
Si está activada (por defecto) la caja de giro se dibuja dentro de un marco, en caso contrario la caja de giro se dibuja sin ningún marco.
Funciones de acceso:
| bool | hasFrame() const |
| void | setFrame(bool) |
keyboardTracking : bool
Esta propiedad mantiene si el seguimiento de teclado está habilitado para el spinbox.
Si el seguimiento del teclado está habilitado (por defecto), el spinbox emite las señales valueChanged() y textChanged() mientras se introduce el nuevo valor desde el teclado.
Por ejemplo, cuando el usuario introduce el valor 600 tecleando 6, 0 y 0, el spinbox emite 3 señales con los valores 6, 60 y 600 respectivamente.
Si el seguimiento del teclado está desactivado, el spinbox no emite las señales valueChanged() y textChanged() mientras se teclea. Emite las señales más tarde, cuando se pulsa la tecla de retorno, cuando se pierde el foco del teclado, o cuando se utiliza otra funcionalidad del spinbox, por ejemplo, pulsar una tecla de flecha.
Funciones de acceso:
| bool | keyboardTracking() const |
| void | setKeyboardTracking(bool kt) |
readOnly : bool
Esta propiedad indica si el cuadro de texto es de sólo lectura.
En modo sólo lectura, el usuario puede copiar el texto al portapapeles, o arrastrar y soltar el texto; pero no puede editarlo.
El QLineEdit en el QAbstractSpinBox no muestra un cursor en modo de sólo lectura.
Funciones de acceso:
| bool | isReadOnly() const |
| void | setReadOnly(bool r) |
Véase también QLineEdit::readOnly.
showGroupSeparator : bool
Esta propiedad indica si está habilitado el separador de miles. Por defecto esta propiedad es false.
Funciones de acceso:
| bool | isGroupSeparatorShown() const |
| void | setGroupSeparatorShown(bool shown) |
specialValueText : QString
Esta propiedad contiene el texto de valor especial
Si se establece, la caja de rotación mostrará este texto en lugar de un valor numérico siempre que el valor actual sea igual a mínimo(). El uso típico es indicar que esta elección tiene un significado especial (por defecto).
Por ejemplo, si su cuadro de giro permite al usuario elegir un factor de escala (o nivel de zoom) para mostrar una imagen, y su aplicación es capaz de elegir automáticamente uno que permita que la imagen quepa completamente dentro de la ventana de visualización, puede configurar el cuadro de giro de esta manera:
QSpinBox *zoomSpinBox = new QSpinBox; zoomSpinBox->setRange(0, 1000); zoomSpinBox->setSingleStep(10); zoomSpinBox->setSuffix("%"); zoomSpinBox->setSpecialValueText(tr("Automatic")); zoomSpinBox->setValue(100);
El usuario podrá elegir una escala del 1% al 1000% o seleccionar "Auto" para dejar que la aplicación elija. Su código debe interpretar el valor 0 del cuadro de giro como una petición del usuario para escalar la imagen para que quepa dentro de la ventana.
Todos los valores se muestran con el prefijo y el sufijo (si están configurados), excepto el valor especial, que sólo muestra el texto del valor especial. Este texto especial se pasa en la señal QSpinBox::textChanged() que pasa un QString.
Para desactivar la visualización del texto de valor especial, llame a esta función con una cadena vacía. Por defecto, no se muestra ningún texto de valor especial, es decir, el valor numérico se muestra como de costumbre.
Si no se establece ningún texto de valor especial, specialValueText() devuelve una cadena vacía.
Funciones de acceso:
| QString | specialValueText() const |
| void | setSpecialValueText(const QString &txt) |
[read-only] text : QString
Esta propiedad contiene el texto del cuadro de giro, incluyendo cualquier prefijo y sufijo.
No hay texto por defecto.
Funciones de acceso:
| QString | text() const |
wrapping : bool
Esta propiedad mantiene si la caja de giro es circular.
Si la envoltura es verdadera, un paso hacia arriba desde el valor máximo() le llevará al valor mínimo() y viceversa. La envoltura sólo tiene sentido si se han establecido los valores mínimo() y máximo().
QSpinBox *spinBox = new QSpinBox(this); spinBox->setRange(0, 100); spinBox->setWrapping(true); spinBox->setValue(100); spinBox->stepBy(1); // value is 0
Funciones de acceso:
| bool | wrapping() const |
| void | setWrapping(bool w) |
Véase también QSpinBox::minimum() y QSpinBox::maximum().
Documentación de las funciones miembro
[explicit] QAbstractSpinBox::QAbstractSpinBox(QWidget *parent = nullptr)
Construye un spinbox abstracto con el parent dado con wrapping por defecto , y propiedades de alineación.
[virtual noexcept] QAbstractSpinBox::~QAbstractSpinBox()
Se activa cuando se destruye QAbstractSpinBox.
[override virtual protected] void QAbstractSpinBox::changeEvent(QEvent *event)
Reimplementa: QWidget::changeEvent(QEvent *event).
[virtual slot] void QAbstractSpinBox::clear()
Borra todo el texto de la línea de edición excepto el prefijo y el sufijo.
[override virtual protected] void QAbstractSpinBox::closeEvent(QCloseEvent *event)
Reimplementa: QWidget::closeEvent(QCloseEvent *event).
[override virtual protected] void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event)
Reimplementa: QWidget::contextMenuEvent(QContextMenuEvent *event).
[signal] void QAbstractSpinBox::editingFinished()
Esta señal se emite al finalizar la edición. Esto ocurre cuando el spinbox pierde el foco y cuando se pulsa enter.
[override virtual] bool QAbstractSpinBox::event(QEvent *event)
Reimplementa: QWidget::event(QEvent *event).
[virtual] void QAbstractSpinBox::fixup(QString &input) const
Esta función virtual es llamada por el QAbstractSpinBox si el input no es validado a QValidator::Acceptable cuando se pulsa Return o se llama a interpretText(). Intentará cambiar el texto para que sea válido. Reimplementada en las distintas subclases.
[override virtual protected] void QAbstractSpinBox::focusInEvent(QFocusEvent *event)
Reimplementa: QWidget::focusInEvent(QFocusEvent *event).
[override virtual protected] void QAbstractSpinBox::focusOutEvent(QFocusEvent *event)
Reimplementa: QWidget::focusOutEvent(QFocusEvent *event).
[override virtual protected] void QAbstractSpinBox::hideEvent(QHideEvent *event)
Reimplementa: QWidget::hideEvent(QHideEvent *event).
[virtual protected] void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const
Inicializa option con los valores de este QSpinBox. Este método es útil para subclases cuando necesitan un QStyleOptionSpinBox, pero no quieren rellenar toda la información ellos mismos.
Véase también QStyleOption::initFrom().
[override virtual] QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const
Reimplementa: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.
void QAbstractSpinBox::interpretText()
Esta función interpreta el texto del cuadro de giro. Si el valor ha cambiado desde la última interpretación emitirá señales.
[override virtual protected] void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)
Reimplementa: QWidget::keyPressEvent(QKeyEvent *event).
Esta función maneja la entrada del teclado.
Las siguientes teclas son manejadas específicamente:
| Enter/Return | Esto reinterpretará el texto y emitirá una señal incluso si el valor no ha cambiado desde la última vez que se emitió una señal. |
| Arriba | Esto invocará stepBy(1) |
| Abajo | Esto invocará stepBy(-1) |
| Página arriba | Esto invocará stepBy(10) |
| Página abajo | Esto invocará stepBy(-10) |
Véase también stepBy().
[override virtual protected] void QAbstractSpinBox::keyReleaseEvent(QKeyEvent *event)
Reimplementa: QWidget::keyReleaseEvent(QKeyEvent *event).
[protected] QLineEdit *QAbstractSpinBox::lineEdit() const
Esta función devuelve un puntero a la línea de edición de la caja de giro.
Véase también setLineEdit().
[override virtual] QSize QAbstractSpinBox::minimumSizeHint() const
Reimplementa una función de acceso para la propiedad: QWidget::minimumSizeHint.
[override virtual protected] void QAbstractSpinBox::mouseMoveEvent(QMouseEvent *event)
Reimplementa: QWidget::mouseMoveEvent(QMouseEvent *event).
[override virtual protected] void QAbstractSpinBox::mousePressEvent(QMouseEvent *event)
Reimplementa: QWidget::mousePressEvent(QMouseEvent *event).
[override virtual protected] void QAbstractSpinBox::mouseReleaseEvent(QMouseEvent *event)
Reimplementa: QWidget::mouseReleaseEvent(QMouseEvent *event).
[override virtual protected] void QAbstractSpinBox::paintEvent(QPaintEvent *event)
Reimplementa: QWidget::paintEvent(QPaintEvent *event).
[override virtual protected] void QAbstractSpinBox::resizeEvent(QResizeEvent *event)
Reimplementa: QWidget::resizeEvent(QResizeEvent *event).
[signal, since 6.10] void QAbstractSpinBox::returnPressed()
Esta señal se emite cuando se utiliza la tecla Return o Enter.
Esta función se introdujo en Qt 6.10.
[slot] void QAbstractSpinBox::selectAll()
Selecciona todo el texto del cuadro de giro excepto el prefijo y el sufijo.
[protected] void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit)
Establece la edición de línea del spinbox para que sea lineEdit en lugar del widget de edición de línea actual. lineEdit no puede ser nullptr.
QAbstractSpinBox toma posesión del nuevo lineEdit
Si QLineEdit::validator() para el lineEdit devuelve nullptr, el validador interno del spinbox se establecerá en la edición de línea.
Véase también lineEdit().
[override virtual protected] void QAbstractSpinBox::showEvent(QShowEvent *event)
Reimplementa: QWidget::showEvent(QShowEvent *event).
[override virtual] QSize QAbstractSpinBox::sizeHint() const
Reimplementa una función de acceso para la propiedad: QWidget::sizeHint.
[virtual] void QAbstractSpinBox::stepBy(int steps)
Función virtual que se llama cada vez que el usuario activa un paso. El parámetro steps indica cuántos pasos se han dado. Por ejemplo, si se pulsa Qt::Key_Down se llamará a stepBy(-1), mientras que si se pulsa Qt::Key_PageUp se llamará a stepBy(10).
Si subclase QAbstractSpinBox debe reimplementar esta función. Tenga en cuenta que esta función se llama incluso si el valor resultante estará fuera de los límites de mínimo y máximo. Es tarea de esta función manejar estas situaciones.
Véase también stepUp(), stepDown(), y keyPressEvent().
[slot] void QAbstractSpinBox::stepDown()
Baja un paso de línea Llamar a esta ranura es análogo a llamar a stepBy(-1);
Véase también stepBy() y stepUp().
[virtual protected] QAbstractSpinBox::StepEnabled QAbstractSpinBox::stepEnabled() const
Función virtual que determina si el paso hacia arriba y hacia abajo es legal en un momento dado.
La flecha hacia arriba se pintará como desactivada a menos que (stepEnabled() & StepUpEnabled) != 0.
La implementación por defecto devolverá (StepUpEnabled| StepDownEnabled) si la envoltura está activada. En caso contrario devolverá StepDownEnabled si el valor es > mínimo() o StepUpEnabled si el valor es < máximo().
Si subclase QAbstractSpinBox tendrá que reimplementar esta función.
Véase también QSpinBox::minimum(), QSpinBox::maximum(), y wrapping().
[slot] void QAbstractSpinBox::stepUp()
Sube un paso de línea Llamar a esta ranura es análogo a llamar a stepBy(1);
Véase también stepBy() y stepDown().
[override virtual protected] void QAbstractSpinBox::timerEvent(QTimerEvent *event)
Reimplementa: QObject::timerEvent(QTimerEvent *event).
[virtual] QValidator::State QAbstractSpinBox::validate(QString &input, int &pos) const
Esta función virtual es llamada por QAbstractSpinBox para determinar si input es válida. El parámetro pos indica la posición en la cadena. Reimplementada en las distintas subclases.
[override virtual protected] void QAbstractSpinBox::wheelEvent(QWheelEvent *event)
Reimplementa: QWidget::wheelEvent(QWheelEvent *event).
© 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.