En esta página

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:

QDateTimeEdit, QDoubleSpinBox, y QSpinBox

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

virtual void clear()
void selectAll()
void stepDown()
void stepUp()

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:

  1. text: El texto que se muestra en el QAbstractSpinBox.
  2. alignment: La alineación del texto en el QAbstractSpinBox.
  3. 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.

Spinbox con los símbolos de flecha arriba y abajo Spinbox con los símbolos más y menos

ConstanteValorDescripción
QAbstractSpinBox::UpDownArrows0Flechitas al estilo clásico.
QAbstractSpinBox::PlusMinus1Símbolos+ y -.
QAbstractSpinBox::NoButtons2No 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.

ConstanteValorDescripción
QAbstractSpinBox::CorrectToPreviousValue0El spinbox revertirá al último valor válido.
QAbstractSpinBox::CorrectToNearestValue1El spinbox revertirá al valor válido más cercano.

Ver también correctionMode.

enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled

ConstanteValor
QAbstractSpinBox::StepNone0x00
QAbstractSpinBox::StepUpEnabled0x01
QAbstractSpinBox::StepDownEnabled0x02

El tipo StepEnabled es un typedef para QFlags<StepEnabledFlag>. Almacena una combinación OR de valores StepEnabledFlag.

enum QAbstractSpinBox::StepType

ConstanteValor
QAbstractSpinBox::DefaultStepType0
QAbstractSpinBox::AdaptiveDecimalStepType1

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/ReturnEsto 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.
ArribaEsto invocará stepBy(1)
AbajoEsto invocará stepBy(-1)
Página arribaEsto invocará stepBy(10)
Página abajoEsto 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.