Sur cette page

QDoubleSpinBox Class

La classe QDoubleSpinBox fournit un widget « spin box » qui accepte des valeurs de type double. En savoir plus...

En-tête : #include <QDoubleSpinBox>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : QAbstractSpinBox

Propriétés

Fonctions publiques

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

Fonctions publiques réimplémentées

virtual void fixup(QString &input) const override
virtual QValidator::State validate(QString &text, int &pos) const override

Slots publics

void setValue(double val)

Signaux

void textChanged(const QString &text)
void valueChanged(double d)

Description détaillée

Boîte à tourner affichant un double

QDoubleSpinBox permet à l’utilisateur de choisir une valeur en cliquant sur les boutons haut et bas ou en appuyant sur les touches Haut ou Bas du clavier pour augmenter ou diminuer la valeur actuellement affichée. L’utilisateur peut également saisir la valeur manuellement. La zone de sélection prend en charge les valeurs de type double, mais peut être étendue pour utiliser différentes chaînes de caractères grâce aux méthodes validate(), textFromValue() et valueFromText().

À chaque modification de la valeur, QDoubleSpinBox émet les signaux valueChanged() et textChanged(), le premier fournissant une valeur de type double et le second une valeur de type QString. Le signal textChanged() fournit la valeur sous la forme prefix() et suffix(). La valeur actuelle peut être récupérée avec value() et définie avec setValue().

Remarque : QDoubleSpinBox arrondit les nombres afin qu’ils puissent être affichés avec la précision actuelle. Dans un QDoubleSpinBox où le nombre de décimales est défini sur 2, l’appel de setValue(2.555) entraînera le retour de la valeur 2.56 par value().

Cliquer sur les boutons haut et bas ou utiliser les flèches haut et bas du raccourci clavier augmentera ou diminuera la valeur actuelle par incréments de taille singleStep(). Si vous souhaitez modifier ce comportement, vous pouvez réimplémenter la fonction virtuelle ` stepBy()`. Les valeurs minimale et maximale ainsi que la taille du pas peuvent être définies à l’aide de l’un des constructeurs, puis modifiées ultérieurement avec ` setMinimum()`, ` setMaximum()` et ` setSingleStep()`. La zone de sélection aléatoire a une précision par défaut de 2 décimales, mais celle-ci peut être modifiée à l’aide de ` setDecimals()`.

La plupart des spinboxes sont directionnelles, mais QDoubleSpinBox peut également fonctionner comme une spinbox circulaire : par exemple, si la plage est comprise entre 0,0 et 99,9 et que la valeur actuelle est 99,9, cliquer sur « haut » donnera 0 si wrapping() est défini sur true. Utilisez setWrapping() si vous souhaitez un comportement circulaire.

La valeur affichée peut être précédée ou suivie de chaînes de caractères arbitraires indiquant, par exemple, la devise ou l’unité de mesure. Voir setPrefix() et setSuffix(). Le texte contenu dans la zone de saisie est récupéré avec text() (qui inclut tout prefix() et suffix()), ou avec cleanText() (qui ne contient ni prefix(), ni suffix(), ni d’espaces en début ou en fin de chaîne).

Il est souvent souhaitable de proposer à l’utilisateur un choix spécial (souvent par défaut) en plus de la plage de valeurs numériques. Consultez setSpecialValueText() pour savoir comment procéder avec QDoubleSpinBox.

Remarque : la valeur affichée par la QDoubleSpinBox est limitée à 18 caractères, en plus d’un éventuel préfixe et suffixe. Cette limitation permet de garantir le bon fonctionnement de la double zone de sélection même avec des valeurs extrêmement élevées.

Voir également QSpinBox, QDateTimeEdit, QSlider et l’exemple sur les spin boxes.

Documentation sur les propriétés

[read-only] cleanText : QString

Cette propriété contient le texte de la zone de saisie, à l'exclusion de tout préfixe, suffixe ou espace en début ou en fin de chaîne.

Fonctions d'accès :

QString cleanText() const

Voir également text, QDoubleSpinBox::prefix et QDoubleSpinBox::suffix.

decimals : int

Cette propriété définit la précision de la zone de sélection, exprimée en décimales

Définit le nombre de décimales que la zone de saisie utilisera pour afficher et interpréter les nombres de type double.

Avertissement : la valeur maximale de « decimals » est DBL_MAX_10_EXP + DBL_DIG (soit 323) en raison des limitations du type « double ».

Remarque : les valeurs maximum, minimum et actuelle peuvent varier suite à la modification de cette propriété.

Fonctions d’accès :

int decimals() const
void setDecimals(int prec)

maximum : double

Cette propriété contient la valeur maximale de la zone de saisie à défilement

Lors de la configuration de cette propriété, l'minimum e est ajustée si nécessaire, afin de garantir que la plage reste valide.

La valeur maximale par défaut est 99,99.

Remarque : la valeur maximale sera arrondie pour correspondre à la propriété « décimales ».

Fonctions d'accès :

double maximum() const
void setMaximum(double max)

Voir également « decimals » et « setRange() ».

minimum : double

Cette propriété contient la valeur minimale de la zone de saisie à sélection

Lors de la configuration de cette propriété, l'maximum e est ajustée si nécessaire afin de garantir que la plage reste valide.

La valeur minimale par défaut est 0,0.

Remarque : la valeur minimale sera arrondie pour correspondre à la propriété « décimales ».

Fonctions d'accès :

double minimum() const
void setMinimum(double min)

Voir également « decimals », « setRange() » et « specialValueText ».

prefix : QString

Cette propriété contient le préfixe de la zone de saisie à spin

Le préfixe est ajouté au début de la valeur affichée. Il est généralement utilisé pour afficher une unité de mesure ou un symbole monétaire. Par exemple :

spinbox->setPrefix("$");

Pour désactiver l'affichage du préfixe, définissez cette propriété sur une chaîne vide. Par défaut, aucun préfixe n'est affiché. Le préfixe n'est pas affiché lorsque value() == minimum() et que specialValueText() est défini.

Si aucun préfixe n’est défini, la fonction prefix() renvoie une chaîne vide.

Fonctions d’accès :

QString prefix() const
void setPrefix(const QString &prefix)

Voir également suffix(), setSuffix(), specialValueText() et setSpecialValueText().

singleStep : double

Cette propriété définit la valeur du pas

Lorsque l'utilisateur utilise les flèches pour modifier la valeur de la zone de saisie, celle-ci est incrémentée ou décrémentée de la valeur de singleStep. La valeur par défaut est 1,0. Définir une valeur singleStep inférieure à 0 n'a aucun effet.

Fonctions d'accès :

double singleStep() const
void setSingleStep(double val)

stepType : StepType

Cette propriété définit le type de pas.

Le type de pas peut être un pas unique ou un pas décimal adaptatif.

Fonctions d'accès :

QAbstractSpinBox::StepType stepType() const
void setStepType(QAbstractSpinBox::StepType stepType)

suffix : QString

Cette propriété contient le suffixe de la zone de saisie à rouleau

Le suffixe est ajouté à la fin de la valeur affichée. Il est généralement utilisé pour afficher une unité de mesure ou un symbole monétaire. Par exemple :

spinbox->setSuffix(" km");

Pour désactiver l’affichage du suffixe, définissez cette propriété sur une chaîne vide. Par défaut, aucun suffixe n’est affiché. Le suffixe n’est pas affiché pour la fonction ` minimum()` si la fonction ` specialValueText()` est définie.

Si aucun suffixe n’est défini, la fonction suffix() renvoie une chaîne vide.

Fonctions d’accès :

QString suffix() const
void setSuffix(const QString &suffix)

Voir également prefix(), setPrefix(), specialValueText() et setSpecialValueText().

value : double

Cette propriété contient la valeur de la zone de sélection

setValue() émettra un signal « valueChanged() » si la nouvelle valeur diffère de l'ancienne. La propriété « value » dispose d'un deuxième signal de notification qui inclut le préfixe et le suffixe de la zone de sélection.

Remarque : la valeur sera arrondie afin de pouvoir s'afficher conformément au paramètre actuel de décimales.

Fonctions d’accès :

double value() const
void setValue(double val)

Signal de notification :

void valueChanged(double d)

Voir également decimals.

Documentation des fonctions membres

[explicit] QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = nullptr)

Crée une zone de sélection à molette dont la valeur minimale est 0,0, la valeur maximale 99,99, le pas 1,0 et la précision de 2 décimales. La valeur est initialement définie sur 0,00. La zone de sélection à molette présente l'parent indiquée.

Voir également setMinimum(), setMaximum() et setSingleStep().

[virtual noexcept] QDoubleSpinBox::~QDoubleSpinBox()

Destructeur.

[override virtual] void QDoubleSpinBox::fixup(QString &input) const

Réimplémente : QAbstractSpinBox::fixup(QString &input) const.

void QDoubleSpinBox::setRange(double minimum, double maximum)

Fonction pratique permettant de définir les valeurs de ` minimum ` et ` maximum ` en un seul appel de fonction.

Remarque : les valeurs maximales et minimales seront arrondies pour correspondre à la propriété « decimals ».

setRange(minimum, maximum);

équivaut à :

setMinimum(minimum);
setMaximum(maximum);

Voir également minimum et maximum.

void QDoubleSpinBox::setStepType(QAbstractSpinBox::StepType stepType)

Définit le type de pas de la zone de sélection rotative sur « stepType », ce qui correspond à un pas unique ou à un pas décimal adaptatif.

Un pas décimal adaptatif signifie que la taille du pas sera continuellement ajustée à une puissance de dix inférieure à la valeur actuelle de « value ». Ainsi, lorsque la valeur est 1 100, le pas est défini sur 100 ; une augmentation d’un pas fait donc passer la valeur à 1 200. Pour 1 200, une augmentation d’un pas fait passer la valeur à 1 300. Pour les valeurs négatives, une diminution à partir de -1 100 conduit à -1 200.

Cela fonctionne également pour toutes les valeurs décimales : 0,041 passe à 0,042 après un pas.

Le sens de l'incrément est pris en compte pour gérer les cas limites, de sorte qu'une diminution à partir de 100 ramène la valeur à 99 au lieu de 90. Ainsi, un incrément suivi d'une diminution – ou inversement – ramène toujours à la valeur de départ : 99 -> 100 -> 99.

La définition de ce paramètre fera en sorte que la zone de saisie ignore la valeur de ` singleStep`, bien que celle-ci soit conservée afin que ` singleStep ` prenne effet si le pas décimal adaptatif est désactivé ultérieurement.

Remarque : fonctionde définition de la propriété stepType.

Voir également stepType().

[signal] void QDoubleSpinBox::textChanged(const QString &text)

Ce signal est émis chaque fois que le texte de la zone de saisie est modifié. Le nouveau texte est transmis via les méthodes ` text `, ` prefix()` et ` suffix()`.

[virtual] QString QDoubleSpinBox::textFromValue(double value) const

Cette fonction virtuelle est utilisée par la zone de saisie « spin box » chaque fois qu’elle doit afficher la valeur fournie par ` value`. L’implémentation par défaut renvoie une chaîne contenant ` value `, affichée à l’aide de ` QWidget::locale()`. `toString` (value, u'f', decimals()) et supprime le séparateur des milliers, sauf si ` setGroupSeparatorShown()` est défini. Les réimplémentations peuvent renvoyer n’importe quelle valeur.

Remarque : QDoubleSpinBox n’appelle pas cette fonction pour specialValueText() et ni prefix() ni suffix() ne doivent être inclus dans la valeur de retour.

Si vous réimplémentez cette fonction, vous devrez peut-être également réimplémenter valueFromText().

Voir également valueFromText() et QLocale::groupSeparator().

[override virtual] QValidator::State QDoubleSpinBox::validate(QString &text, int &pos) const

Réimplémente : QAbstractSpinBox::validate(QString &input, int &pos) const.

[signal] void QDoubleSpinBox::valueChanged(double d)

Ce signal est émis chaque fois que la valeur de la zone de sélection est modifiée. La nouvelle valeur est transmise via l'd.

Remarque : signalde notification pour la propriété value.

[virtual] double QDoubleSpinBox::valueFromText(const QString &text) const

Cette fonction virtuelle est utilisée par la zone de sélection à roue chaque fois qu’elle doit interpréter une « text » saisie par l’utilisateur comme une valeur.

Les sous-classes qui doivent afficher les valeurs de la zone de sélection sous une forme non numérique doivent réimplémenter cette fonction.

Remarque : QDoubleSpinBox gère specialValueText() séparément ; cette fonction ne concerne que les autres valeurs.

Voir également textFromValue() et 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.