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

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.