Sur cette page

QSpinBox Class

La classe QSpinBox fournit un widget de boîte à outils. Plus d'informations...

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

Propriétés

Fonctions publiques

QSpinBox(QWidget *parent = nullptr)
virtual ~QSpinBox()
QString cleanText() const
int displayIntegerBase() const
int maximum() const
int minimum() const
QString prefix() const
void setDisplayIntegerBase(int base)
void setMaximum(int max)
void setMinimum(int min)
void setPrefix(const QString &prefix)
void setRange(int minimum, int maximum)
void setSingleStep(int val)
void setStepType(QAbstractSpinBox::StepType stepType)
void setSuffix(const QString &suffix)
int singleStep() const
QAbstractSpinBox::StepType stepType() const
QString suffix() const
int value() const

Emplacements publics

void setValue(int val)

Signaux

void textChanged(const QString &text)
void valueChanged(int i)

Fonctions protégées

virtual QString textFromValue(int value) const
virtual int valueFromText(const QString &text) const

Fonctions protégées réimplémentées

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

Description détaillée

Widget de type "spin box" affichant un nombre entier

QSpinBox est conçu pour gérer les entiers et les ensembles discrets de valeurs (par exemple, les noms de mois) ; utilisez QDoubleSpinBox pour les valeurs à virgule flottante.

QSpinBox permet à l'utilisateur de choisir une valeur en cliquant sur les boutons haut/bas ou en appuyant sur les touches haut/bas du clavier pour augmenter/diminuer la valeur affichée. L'utilisateur peut également saisir la valeur manuellement. La boîte à outils prend en charge les valeurs entières mais peut être étendue pour utiliser différentes chaînes de caractères avec validate(), textFromValue() et valueFromText().

Chaque fois que la valeur change, QSpinBox émet les signaux valueChanged() et textChanged(), le premier fournissant un int et le second un QString. Le signal textChanged() fournit la valeur avec prefix() et suffix(). La valeur actuelle peut être récupérée avec value() et fixée avec setValue().

En cliquant sur les boutons haut/bas ou en utilisant les flèches haut/bas de l'accélérateur de clavier, vous augmenterez ou diminuerez la valeur actuelle par paliers de la taille de 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 et peuvent être modifiées ultérieurement à l'aide de setMinimum(), setMaximum() et setSingleStep().

La plupart des boîtes de rotation sont directionnelles, mais QSpinBox peut également fonctionner comme une boîte de rotation circulaire, c'est-à-dire que si la plage est de 0 à 99 et que la valeur actuelle est 99, cliquer sur "up" donnera 0 si wrapping() est réglé sur true. Utilisez setWrapping() si vous souhaitez un comportement circulaire.

La valeur affichée peut être précédée et complétée par des chaînes de caractères arbitraires indiquant, par exemple, la devise ou l'unité de mesure. Voir setPrefix() et setSuffix(). Le texte de la boîte de dialogue est récupéré avec text() (qui inclut tout prefix() et suffix()), ou avec cleanText() (qui n'a pas prefix(), pas suffix() et pas d'espace blanc de début ou de fin).

Il est souvent souhaitable de donner à l'utilisateur un choix spécial (souvent par défaut) en plus de la gamme de valeurs numériques. Voir setSpecialValueText() pour savoir comment procéder avec QSpinBox.

Sous-classement de QSpinBox

Si l'utilisation de prefix(), suffix() et specialValueText() n'offre pas un contrôle suffisant, vous pouvez sous-classer QSpinBox et réimplémenter valueFromText() et textFromValue(). Par exemple, voici le code d'une boîte de rotation personnalisée qui permet à l'utilisateur de saisir la taille des icônes (par exemple, "32 x 32") :

int IconSizeSpinBox::valueFromText(const QString &text) const
{
    static const QRegularExpression regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?"));
    Q_ASSERT(regExp.isValid());

    const QRegularExpressionMatch match = regExp.match(text);
    if (match.isValid())
        return match.captured(1).toInt();
    return 0;
}

QString IconSizeSpinBox::textFromValue(int value) const
{
    return tr("%1 x %1").arg(value);
}

Voir également QDoubleSpinBox, QDateTimeEdit, QSlider, et Spin Boxes Example.

Documentation sur les propriétés

[read-only] cleanText : QString

Cette propriété contient le texte de la boîte de dialogue, à l'exclusion de tout préfixe, suffixe ou espace blanc de début ou de fin.

Fonctions d'accès :

QString cleanText() const

Voir aussi text, QSpinBox::prefix, et QSpinBox::suffix.

displayIntegerBase : int

Cette propriété contient la base utilisée pour afficher la valeur de la boîte à outils

La valeur par défaut de displayIntegerBase est 10.

Fonctions d'accès :

int displayIntegerBase() const
void setDisplayIntegerBase(int base)

Voir aussi textFromValue() et valueFromText().

maximum : int

Cette propriété contient la valeur maximale de la boîte de rotation

Lors de la définition de cette propriété, le minimum est ajusté si nécessaire, afin de s'assurer que la plage reste valide.

La valeur maximale par défaut est 99.

Fonctions d'accès :

int maximum() const
void setMaximum(int max)

Voir aussi setRange() et specialValueText.

minimum : int

Cette propriété contient la valeur minimale de la boîte de rotation

Lors de la définition de cette propriété, le site maximum est ajusté si nécessaire pour garantir la validité de la plage.

La valeur minimale par défaut est 0.

Fonctions d'accès :

int minimum() const
void setMinimum(int min)

Voir également setRange() et specialValueText.

prefix : QString

Cette propriété contient le préfixe de la boîte à outils

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, pour désactiver l'affichage du préfixe, définissez cette propriété comme suit

sb->setPrefix("$");

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

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

Fonctions d'accès :

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

Voir aussi suffix(), setSuffix(), specialValueText() et setSpecialValueText().

singleStep : int

Cette propriété contient la valeur du pas

Lorsque l'utilisateur utilise les flèches pour modifier la valeur de la boîte de rotation, celle-ci est incrémentée/décrémentée de la valeur du singleStep. La valeur par défaut est 1. La définition d'une valeur de singleStep inférieure à 0 n'a aucun effet.

Fonctions d'accès :

int singleStep() const
void setSingleStep(int val)

stepType : StepType

Cette propriété contient le type de pas.

Il peut s'agir d'un pas unique ou d'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 boîte à outils

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, pour désactiver l'affichage du suffixe, définissez cette propriété comme suit

sb->setSuffix(" km");

Pour désactiver l'affichage du suffixe, attribuez à cette propriété la valeur d'une chaîne vide. Par défaut, aucun suffixe n'est affiché. Le suffixe n'est pas affiché pour minimum() si specialValueText() est défini.

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

Fonctions d'accès :

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

Voir aussi prefix(), setPrefix(), specialValueText() et setSpecialValueText().

value : int

Cette propriété contient la valeur de la boîte à boutons

setValue() émettra valueChanged() si la nouvelle valeur est différente de l'ancienne. La propriété value possède un second signal notificateur qui inclut le préfixe et le suffixe de la spin box.

Fonctions d'accès :

int value() const
void setValue(int val)

Signal de notification :

void valueChanged(int i)

Documentation des fonctions membres

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

Construit une boîte à spin avec 0 comme valeur minimale et 99 comme valeur maximale, une valeur de pas de 1. La valeur est initialement fixée à 0. Elle est apparentée à parent.

Voir aussi setMinimum(), setMaximum() et setSingleStep().

[virtual noexcept] QSpinBox::~QSpinBox()

Destructeur.

[override virtual protected] bool QSpinBox::event(QEvent *event)

Réimplémente : QAbstractSpinBox::event(QEvent *event).

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

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

void QSpinBox::setRange(int minimum, int maximum)

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

setRange(minimum, maximum);

est équivalent à :

setMinimum(minimum);
setMaximum(maximum);

Voir aussi minimum et maximum.

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

Définit le type de pas pour la boîte à outils à stepType, qui est un pas unique ou un pas décimal adaptatif.

Le pas décimal adaptatif signifie que la taille du pas sera continuellement ajustée à une puissance de dix en dessous de la valeur actuelle value. Ainsi, lorsque la valeur est de 1100, le pas est fixé à 100, de sorte qu'en augmentant une fois la valeur, on passe à 1200. Pour une valeur de 1200, le pas augmente jusqu'à 1300. Pour les valeurs négatives, le pas vers le bas à partir de -1100 va jusqu'à -1200.

La direction du pas est prise en compte pour traiter les cas de contournement, de sorte qu'un pas vers le bas à partir de 100 porte la valeur à 99 au lieu de 90. Ainsi, un pas vers le haut suivi d'un pas vers le bas - ou vice versa - aboutit toujours à la valeur de départ ; 99 -> 100 -> 99.

Si cette propriété est activée, la boîte à outils ne tiendra pas compte de la valeur de singleStep, bien qu'elle soit préservée de sorte que singleStep prenne effet si l'échelon décimal adaptatif est désactivé ultérieurement.

Note : Fonction de définition de la propriété stepType.

Voir également stepType().

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

Ce signal est émis lorsque le texte de la boîte de dialogue est modifié. Le nouveau texte est transmis à text avec prefix() et suffix().

[virtual protected] QString QSpinBox::textFromValue(int value) const

Cette fonction virtuelle est utilisée par la spin box chaque fois qu'elle doit afficher la valeur donnée value. L'implémentation par défaut renvoie une chaîne contenant value imprimée de manière standard à l'aide de QWidget::locale().toString(), mais avec le séparateur de milliers supprimé à moins que setGroupSeparatorShown() ne soit défini. Les réimplémentations peuvent renvoyer n'importe quoi. (Voir l'exemple dans la description détaillée).

Remarque : QSpinBox 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 aussi réimplémenter valueFromText() et validate().

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

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

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

[signal] void QSpinBox::valueChanged(int i)

Ce signal est émis lorsque la valeur de la boîte de rotation est modifiée. La valeur entière de la nouvelle valeur est transmise à i.

Note : Signal de notification pour la propriété value.

[virtual protected] int QSpinBox::valueFromText(const QString &text) const

Cette fonction virtuelle est utilisée par la boîte à boutons chaque fois qu'elle doit interpréter text saisi par l'utilisateur comme une valeur.

Les sous-classes qui doivent afficher les valeurs de la boîte à outils d'une manière non numérique doivent réimplémenter cette fonction.

Remarque : QSpinBox gère specialValueText() séparément ; cette fonction ne s'occupe que des 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.