Sur cette page

QAbstractSpinBox Class

La classe QAbstractSpinBox fournit une boîte de dialogue et une ligne d'édition pour afficher les valeurs. Plus d'informations...

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

QDateTimeEdit, QDoubleSpinBox, et QSpinBox

Types publics

enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }
enum CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue }
flags StepEnabled
enum StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled }
enum StepType { DefaultStepType, AdaptiveDecimalStepType }

Propriétés

Fonctions publiques

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

Fonctions publiques réimplémentées

virtual bool event(QEvent *event) override
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Emplacements publics

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

Signaux

void editingFinished()
(since 6.10) void returnPressed()

Fonctions protégées

virtual void initStyleOption(QStyleOptionSpinBox *option) const
QLineEdit *lineEdit() const
void setLineEdit(QLineEdit *lineEdit)
virtual QAbstractSpinBox::StepEnabled stepEnabled() const

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

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

Description détaillée

Cette classe est conçue comme une super classe commune pour des widgets tels que QSpinBox, QDoubleSpinBox et QDateTimeEdit

Voici les principales propriétés de la classe :

  1. text: Le texte affiché dans la QAbstractSpinBox.
  2. alignment: L'alignement du texte dans la QAbstractSpinBox.
  3. wrapping: si la QAbstractSpinBox passe de la valeur minimale à la valeur maximale et vice versa.

QAbstractSpinBox fournit une fonction virtuelle stepBy() qui est appelée chaque fois que l'utilisateur déclenche une étape. Cette fonction prend une valeur entière pour indiquer le nombre de pas effectués. Par exemple, une pression sur Qt::Key_Down déclenchera un appel à stepBy(-1).

Lorsque l'utilisateur déclenche un pas tout en maintenant la touche Qt::ControlModifier, QAbstractSpinBox fait un pas de 10 au lieu de faire un seul pas. Ce modificateur de pas affecte les événements de roue, les événements de touche et l'interaction avec les boutons de la spinbox. Notez que sur macOS, Control correspond à la touche Command.

Depuis Qt 5.12, QStyle::SH_SpinBox_StepModifier peut être utilisé pour sélectionner quel Qt::KeyboardModifier augmente le taux de pas. Qt::NoModifier désactive cette fonctionnalité.

QAbstractSpinBox fournit également une fonction virtuelle stepEnabled() pour déterminer si la montée/descente est autorisée en tout point. Cette fonction renvoie un jeu de bits de StepEnabled.

Voir également QAbstractSlider, QSpinBox, QDoubleSpinBox, QDateTimeEdit, et Spin Boxes Example.

Documentation sur les types de membres

enum QAbstractSpinBox::ButtonSymbols

Ce type d'énumération décrit les symboles qui peuvent être affichés sur les boutons d'une boîte à outils.

Spinbox avec les symboles de la flèche vers le haut et vers le bas Spinbox avec les symboles plus et moins

ConstanteValeurDescription
QAbstractSpinBox::UpDownArrows0Petites flèches de style classique.
QAbstractSpinBox::PlusMinus1Symboles+ et -.
QAbstractSpinBox::NoButtons2N'affiche pas les boutons.

Voir aussi QAbstractSpinBox::buttonSymbols.

enum QAbstractSpinBox::CorrectionMode

Ce type d'énumération décrit le mode utilisé par la spinbox pour corriger une valeur Intermediate à la fin de l'édition.

ConstanteValeurDescription
QAbstractSpinBox::CorrectToPreviousValue0La spinbox reprend la dernière valeur valide.
QAbstractSpinBox::CorrectToNearestValue1La spinbox reprend la valeur valide la plus proche.

Voir aussi correctionMode.

enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled

ConstanteValeur
QAbstractSpinBox::StepNone0x00
QAbstractSpinBox::StepUpEnabled0x01
QAbstractSpinBox::StepDownEnabled0x02

Le type StepEnabled est un typedef pour QFlags<StepEnabledFlag>. Il stocke une combinaison OU de valeurs StepEnabledFlag.

enum QAbstractSpinBox::StepType

ConstanteValeur
QAbstractSpinBox::DefaultStepType0
QAbstractSpinBox::AdaptiveDecimalStepType1

Documentation sur les propriétés

accelerated : bool

Cette propriété indique si la boîte à boutons accélère la fréquence des pas lorsque l'on appuie sur les boutons de montée/descente des pas.

Si cette propriété est activée, la boîte à boutons augmentera/diminuera la valeur plus rapidement au fur et à mesure que vous maintenez le bouton enfoncé.

Fonctions d'accès :

bool isAccelerated() const
void setAccelerated(bool on)

[read-only] acceptableInput : bool

Cette propriété indique si l'entrée satisfait à la validation en cours

Les fonctions d'accès :

bool hasAcceptableInput() const

Voir aussi validate(), fixup() et correctionMode.

alignment : Qt::Alignment

Cette propriété définit l'alignement de la boîte à outils

Les valeurs possibles sont Qt::AlignLeft, Qt::AlignRight, et Qt::AlignHCenter.

Par défaut, l'alignement est Qt::AlignLeft

Toute tentative de définir l'alignement avec une combinaison de drapeaux illégale n'a aucun effet.

Fonctions d'accès :

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment flag)

Voir également Qt::Alignment.

buttonSymbols : ButtonSymbols

Cette propriété contient le mode de symbole du bouton actuel

Les valeurs possibles sont UpDownArrows ou PlusMinus. La valeur par défaut est UpDownArrows.

Notez que certains styles peuvent rendre PlusMinus et UpDownArrows identiques.

Fonctions d'accès :

QAbstractSpinBox::ButtonSymbols buttonSymbols() const
void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)

Voir également ButtonSymbols.

correctionMode : CorrectionMode

Cette propriété contient le mode de correction d'une valeur Intermediate si l'édition se termine

Le mode par défaut est QAbstractSpinBox::CorrectToPreviousValue.

Fonctions d'accès :

QAbstractSpinBox::CorrectionMode correctionMode() const
void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm)

Voir également acceptableInput, validate() et fixup().

frame : bool

Cette propriété indique si la boîte de rotation se dessine avec un cadre

Si cette propriété est activée (par défaut), la boîte de rotation se dessine à l'intérieur d'un cadre, sinon la boîte de rotation se dessine sans cadre.

Fonctions d'accès :

bool hasFrame() const
void setFrame(bool)

keyboardTracking : bool

Cette propriété indique si le suivi du clavier est activé pour la spinbox.

Si le suivi du clavier est activé (par défaut), la spinbox émet les signaux valueChanged() et textChanged() pendant que la nouvelle valeur est saisie au clavier.

Par exemple, lorsque l'utilisateur entre la valeur 600 en tapant 6, 0 et 0, la spinbox émet 3 signaux avec les valeurs 6, 60 et 600 respectivement.

Si le suivi du clavier est désactivé, la spinbox n'émet pas les signaux valueChanged() et textChanged() pendant la frappe. Elle émet ces signaux plus tard, lorsque la touche retour est pressée, lorsque le focus clavier est perdu, ou lorsque d'autres fonctionnalités de la spinbox sont utilisées, par exemple en pressant une touche fléchée.

Fonctions d'accès :

bool keyboardTracking() const
void setKeyboardTracking(bool kt)

readOnly : bool

Cette propriété indique si la boîte de dialogue est en lecture seule.

En mode lecture seule, l'utilisateur peut toujours copier le texte dans le presse-papiers ou le faire glisser et le déposer, mais il ne peut pas le modifier.

Le site QLineEdit, à l'adresse QAbstractSpinBox, n'affiche pas de curseur en mode lecture seule.

Fonctions d'accès :

bool isReadOnly() const
void setReadOnly(bool r)

Voir également QLineEdit::readOnly.

showGroupSeparator : bool

Cette propriété indique si le séparateur de milliers est activé. Par défaut, cette propriété vaut false.

Fonctions d'accès :

bool isGroupSeparatorShown() const
void setGroupSeparatorShown(bool shown)

specialValueText : QString

Cette propriété contient le texte de la valeur spéciale

Si elle est définie, la boîte à outils affichera ce texte au lieu d'une valeur numérique lorsque la valeur actuelle est égale à minimum(). L'utilisation typique est d'indiquer que ce choix a une signification spéciale (par défaut).

Par exemple, si votre boîte à outils permet à l'utilisateur de choisir un facteur d'échelle (ou niveau de zoom) pour l'affichage d'une image, et que votre application est capable de choisir automatiquement un facteur qui permettra à l'image de tenir entièrement dans la fenêtre d'affichage, vous pouvez configurer la boîte à outils comme suit :

    QSpinBox *zoomSpinBox = new QSpinBox;
    zoomSpinBox->setRange(0, 1000);
    zoomSpinBox->setSingleStep(10);
    zoomSpinBox->setSuffix("%");
    zoomSpinBox->setSpecialValueText(tr("Automatic"));
    zoomSpinBox->setValue(100);

L'utilisateur pourra alors choisir une échelle de 1% à 1000% ou sélectionner "Auto" pour laisser le choix à l'application. Votre code doit alors interpréter la valeur 0 de la boîte de rotation comme une demande de l'utilisateur de mettre l'image à l'échelle pour qu'elle tienne dans la fenêtre.

Toutes les valeurs sont affichées avec le préfixe et le suffixe (s'ils sont définis), à l'exception de la valeur spéciale, qui n'affiche que le texte de la valeur spéciale. Ce texte spécial est transmis dans le signal QSpinBox::textChanged() qui transmet une valeur QString.

Pour désactiver l'affichage du texte de la valeur spéciale, appelez cette fonction avec une chaîne vide. Par défaut, aucun texte de valeur spéciale n'est affiché, c'est-à-dire que la valeur numérique est affichée comme d'habitude.

Si aucun texte de valeur spéciale n'est défini, specialValueText() renvoie une chaîne vide.

Fonctions d'accès :

QString specialValueText() const
void setSpecialValueText(const QString &txt)

[read-only] text : QString

Cette propriété contient le texte de la boîte de dialogue, y compris les préfixes et suffixes éventuels

Il n'y a pas de texte par défaut.

Fonctions d'accès :

QString text() const

wrapping : bool

Cette propriété indique si la boîte de rotation est circulaire.

Si l'enroulement est vrai, l'augmentation de la valeur maximum() vous amènera à la valeur minimum() et vice versa. L'enroulement n'a de sens que si les valeurs minimum() et maximum() sont définies.

QSpinBox *spinBox = new QSpinBox(this);
spinBox->setRange(0, 100);
spinBox->setWrapping(true);
spinBox->setValue(100);
spinBox->stepBy(1);
// value is 0

Fonctions d'accès :

bool wrapping() const
void setWrapping(bool w)

Voir également QSpinBox::minimum() et QSpinBox::maximum().

Documentation sur les fonctions membres

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

Construit une spinbox abstraite avec l'adresse parent, avec les propriétés par défaut wrapping et d'alignement.

[virtual noexcept] QAbstractSpinBox::~QAbstractSpinBox()

Appelé lorsque le site QAbstractSpinBox est détruit.

[override virtual protected] void QAbstractSpinBox::changeEvent(QEvent *event)

Réimplémente : QWidget::changeEvent(QEvent *event).

[virtual slot] void QAbstractSpinBox::clear()

Efface tout le texte de l'édition de ligne, à l'exception du préfixe et du suffixe.

[override virtual protected] void QAbstractSpinBox::closeEvent(QCloseEvent *event)

Réimplémente : QWidget::closeEvent(QCloseEvent *event).

[override virtual protected] void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event)

Réimplémente : QWidget::contextMenuEvent(QContextMenuEvent *event).

[signal] void QAbstractSpinBox::editingFinished()

Ce signal est émis lorsque l'édition est terminée. Cela se produit lorsque la spinbox perd le focus et lorsque l'on appuie sur la touche Entrée.

[override virtual] bool QAbstractSpinBox::event(QEvent *event)

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

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

Cette fonction virtuelle est appelée par QAbstractSpinBox si input n'est pas validé par QValidator::Acceptable lorsque Return est pressé ou que interpretText() est appelé. Elle essaiera de modifier le texte pour qu'il soit valide. Réimplémentée dans les différentes sous-classes.

[override virtual protected] void QAbstractSpinBox::focusInEvent(QFocusEvent *event)

Réimplémente : QWidget::focusInEvent(QFocusEvent *event).

[override virtual protected] void QAbstractSpinBox::focusOutEvent(QFocusEvent *event)

Réimplémente : QWidget::focusOutEvent(QFocusEvent *event).

[override virtual protected] void QAbstractSpinBox::hideEvent(QHideEvent *event)

Réimplémente : QWidget::hideEvent(QHideEvent *event).

[virtual protected] void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const

Initialiser option avec les valeurs de QSpinBox. Cette méthode est utile pour les sous-classes qui ont besoin d'un QStyleOptionSpinBox, mais qui ne veulent pas remplir toutes les informations elles-mêmes.

Voir aussi QStyleOption::initFrom().

[override virtual] QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const

Réimplémente : QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.

void QAbstractSpinBox::interpretText()

Cette fonction interprète le texte de la boîte à outils. Si la valeur a changé depuis la dernière interprétation, elle émet des signaux.

[override virtual protected] void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)

Réimplémente : QWidget::keyPressEvent(QKeyEvent *event).

Cette fonction gère les entrées au clavier.

Les touches suivantes sont gérées de manière spécifique :

Entrée/RetourCette fonction réinterprète le texte et émet un signal même si la valeur n'a pas changé depuis la dernière fois qu'un signal a été émis.
HautCette touche permet d'appeler stepBy(1)
Vers le basCeci invoquera stepBy(-1)
Page en hautCeci invoquera stepBy(10)
Page en basCeci invoquera stepBy(-10)

Voir aussi stepBy().

[override virtual protected] void QAbstractSpinBox::keyReleaseEvent(QKeyEvent *event)

Réimplémente : QWidget::keyReleaseEvent(QKeyEvent *event).

[protected] QLineEdit *QAbstractSpinBox::lineEdit() const

Cette fonction renvoie un pointeur sur l'édition de ligne de la boîte à outils.

Voir aussi setLineEdit().

[override virtual] QSize QAbstractSpinBox::minimumSizeHint() const

Réimplémente une fonction d'accès à la propriété : QWidget::minimumSizeHint.

[override virtual protected] void QAbstractSpinBox::mouseMoveEvent(QMouseEvent *event)

Réimplémente : QWidget::mouseMoveEvent(QMouseEvent *event).

[override virtual protected] void QAbstractSpinBox::mousePressEvent(QMouseEvent *event)

Réimplémente : QWidget::mousePressEvent(QMouseEvent *event).

[override virtual protected] void QAbstractSpinBox::mouseReleaseEvent(QMouseEvent *event)

Réimplémente : QWidget::mouseReleaseEvent(QMouseEvent *event).

[override virtual protected] void QAbstractSpinBox::paintEvent(QPaintEvent *event)

Réimplémente : QWidget::paintEvent(QPaintEvent *event).

[override virtual protected] void QAbstractSpinBox::resizeEvent(QResizeEvent *event)

Réimplémente : QWidget::resizeEvent(QResizeEvent *event).

[signal, since 6.10] void QAbstractSpinBox::returnPressed()

Ce signal est émis lorsque la touche Retour ou Entrée est utilisée.

Cette fonction a été introduite dans Qt 6.10.

[slot] void QAbstractSpinBox::selectAll()

Sélectionne tout le texte de la boîte à outils à l'exception du préfixe et du suffixe.

[protected] void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit)

Définit l'édition de ligne de la spinbox à lineEdit au lieu du widget d'édition de ligne actuel. lineEdit ne peut pas être nullptr.

QAbstractSpinBox prend en charge le nouveau widget d'édition de ligne. lineEdit

Si QLineEdit::validator() pour lineEdit renvoie nullptr, le validateur interne de la spinbox sera défini sur l'édition de ligne.

Voir aussi lineEdit().

[override virtual protected] void QAbstractSpinBox::showEvent(QShowEvent *event)

Réimplémente : QWidget::showEvent(QShowEvent *event).

[override virtual] QSize QAbstractSpinBox::sizeHint() const

Réimplémente une fonction d'accès à la propriété : QWidget::sizeHint.

[virtual] void QAbstractSpinBox::stepBy(int steps)

Fonction virtuelle appelée chaque fois que l'utilisateur déclenche une étape. Le paramètre steps indique le nombre d'étapes franchies. Par exemple, l'appui sur Qt::Key_Down déclenche un appel à stepBy(-1), tandis que l'appui sur Qt::Key_PageUp déclenche un appel à stepBy(10).

Si vous sous-classez QAbstractSpinBox, vous devez réimplémenter cette fonction. Notez que cette fonction est appelée même si la valeur résultante se situe en dehors des limites du minimum et du maximum. C'est à cette fonction de gérer ces situations.

Voir aussi stepUp(), stepDown() et keyPressEvent().

[slot] void QAbstractSpinBox::stepDown()

Descend d'un pas de ligne L'appel de ce slot est analogue à l'appel de stepBy(-1) ;

Voir aussi stepBy() et stepUp().

[virtual protected] QAbstractSpinBox::StepEnabled QAbstractSpinBox::stepEnabled() const

Fonction virtuelle qui détermine si la marche vers le haut ou vers le bas est légale à un moment donné.

La flèche vers le haut sera peinte comme étant désactivée à moins que (stepEnabled() & StepUpEnabled) != 0.

L'implémentation par défaut renvoie (StepUpEnabled| StepDownEnabled) si le wrapping est activé. Sinon, elle renvoie StepDownEnabled si la valeur est > minimum() ou StepUpEnabled si la valeur est < maximum().

Si vous sous-classez QAbstractSpinBox, vous devrez réimplémenter cette fonction.

Voir aussi QSpinBox::minimum(), QSpinBox::maximum(), et wrapping().

[slot] void QAbstractSpinBox::stepUp()

Remonte d'un pas de ligne L'appel de ce slot est analogue à l'appel de stepBy(1) ;

Voir aussi stepBy() et stepDown().

[override virtual protected] void QAbstractSpinBox::timerEvent(QTimerEvent *event)

Réimplémente : QObject::timerEvent(QTimerEvent *event).

[virtual] QValidator::State QAbstractSpinBox::validate(QString &input, int &pos) const

Cette fonction virtuelle est appelée par QAbstractSpinBox pour déterminer si input est valide. Le paramètre pos indique la position dans la chaîne. Réimplémentée dans les différentes sous-classes.

[override virtual protected] void QAbstractSpinBox::wheelEvent(QWheelEvent *event)

Réimplémente : 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.