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

QDoubleSpinBox permite al usuario elegir un valor haciendo clic en los botones arriba y abajo o pulsando Arriba o Abajo en el teclado para aumentar o disminuir el valor que se muestra actualmente. El usuario también puede escribir el valor manualmente. El cuadro de giro admite valores dobles, pero puede ampliarse para utilizar diferentes cadenas con validate(), textFromValue() y valueFromText().
Cada vez que cambia el valor, QDoubleSpinBox emite las señales valueChanged() y textChanged(), la primera proporciona un double y la segunda un QString. La señal textChanged() proporciona el valor con prefix() y suffix(). El valor actual puede obtenerse con value() y establecerse con setValue().
Nota: QDoubleSpinBox redondeará los números para que puedan ser mostrados con la precisión actual. En un QDoubleSpinBox con decimales fijados en 2, llamar a setValue(2.555) hará que value() devuelva 2.56.
Pulsando los botones arriba y 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(). El spinbox tiene una precisión por defecto de 2 decimales, pero puede cambiarse con setDecimals().
La mayoría de las cajas de giro son direccionales, pero QDoubleSpinBox también puede funcionar como una caja de giro circular, es decir, si el rango es 0.0-99.9 y el valor actual es 99.9, 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 QDoubleSpinBox.
Nota: El valor mostrado de QDoubleSpinBox está limitado a 18 caracteres además del contenido eventual del prefijo y sufijo. Esta limitación se utiliza para mantener la caja de doble giro utilizable incluso con valores extremadamente grandes.
Ver también QSpinBox, 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, QDoubleSpinBox::prefix, y QDoubleSpinBox::suffix.
decimals : int
Esta propiedad contiene la precisión del cuadro de giro, en decimales
Establece cuántos decimales utilizará la caja de rotación para mostrar e interpretar dobles.
Atención: El valor máximo para decimals es DBL_MAX_10_EXP + DBL_DIG (es decir, 323) debido a las limitaciones del tipo doble.
Nota: El máximo, el mínimo y el valor pueden cambiar al modificar esta propiedad.
Funciones de acceso:
| int | decimals() const |
| void | setDecimals(int prec) |
maximum : double
Esta propiedad contiene el valor máximo de la caja de giro.
Cuando se establece esta propiedad, la dirección minimum se ajusta si es necesario, para asegurar que el rango sigue siendo válido.
El valor máximo por defecto es 99.99.
Nota: El valor máximo se redondeará para que coincida con la propiedad decimales.
Funciones de acceso:
| double | maximum() const |
| void | setMaximum(double max) |
Véase también decimals y setRange().
minimum : double
Esta propiedad contiene el valor mínimo de la caja de giro.
Al establecer esta propiedad, la dirección maximum se ajusta si es necesario para garantizar que el rango sigue siendo válido.
El valor mínimo por defecto es 0.0.
Nota: El valor mínimo se redondeará para que coincida con la propiedad decimales.
Funciones de acceso:
| double | minimum() const |
| void | setMinimum(double min) |
Véase también decimals, 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:
spinbox->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 establece 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 : double
Esta propiedad contiene el valor del paso
Cuando el usuario utiliza las flechas para cambiar el valor de la caja de giro, el valor se incrementará/decrementará en la cantidad del singleStep. El valor por defecto es 1.0. Establecer un valor de singleStep menor que 0 no hace nada.
Funciones de acceso:
| double | singleStep() const |
| void | setSingleStep(double 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:
spinbox->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 : double
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.
Nota: El valor se redondeará para que pueda mostrarse con la configuración actual de decimales.
Funciones de acceso:
| double | value() const |
| void | setValue(double val) |
Señal notificadora:
| void | valueChanged(double d) |
Véase también decimals.
Documentación de las funciones miembro
[explicit] QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = nullptr)
Construye una caja giratoria con 0,0 como valor mínimo y 99,99 como valor máximo, un valor de paso de 1,0 y una precisión de 2 decimales. El valor inicial es 0.00. El cuadro de giro tiene el valor parent.
Véase también setMinimum(), setMaximum() y setSingleStep().
[virtual noexcept] QDoubleSpinBox::~QDoubleSpinBox()
Destructor.
[override virtual] void QDoubleSpinBox::fixup(QString &input) const
Reimplementa: QAbstractSpinBox::fixup(QString &input) const.
void QDoubleSpinBox::setRange(double minimum, double maximum)
Función de conveniencia para establecer los valores minimum y maximum con una sola llamada a la función.
Nota: Los valores máximo y mínimo se redondearán para que coincidan con la propiedad decimales.
setRange(minimum, maximum);es equivalente a:
setMinimum(minimum); setMaximum(maximum);
Véase también minimum y maximum.
void QDoubleSpinBox::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.
También funciona para cualquier valor decimal, 0.041 se incrementa a 0.042 dando un paso.
La dirección del paso se tiene en cuenta para manejar los casos extremos, de modo que bajar desde 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. Así, 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 QDoubleSpinBox::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] QString QDoubleSpinBox::textFromValue(double value) const
Esta función virtual es utilizada por la caja de giro siempre que necesite mostrar el value dado. La implementación por defecto devuelve una cadena que contiene value impresa usando QWidget::locale().toString(value, u'f', decimals()) y eliminará el separador de miles a menos que se establezca setGroupSeparatorShown(). Las reimplementaciones pueden devolver cualquier cosa.
Nota: QDoubleSpinBox 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().
Véase también valueFromText() y QLocale::groupSeparator().
[override virtual] QValidator::State QDoubleSpinBox::validate(QString &text, int &pos) const
Reimplementa: QAbstractSpinBox::validate(QString &input, int &pos) const.
[signal] void QDoubleSpinBox::valueChanged(double d)
Esta señal se emite cada vez que se cambia el valor del cuadro de giro. El nuevo valor se pasa en d.
Nota: Señal notificadora para la propiedad value.
[virtual] double QDoubleSpinBox::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: QDoubleSpinBox 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.