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 : |
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
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 :
- text: Le texte affiché dans la QAbstractSpinBox.
- alignment: L'alignement du texte dans la QAbstractSpinBox.
- 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.

| Constante | Valeur | Description |
|---|---|---|
QAbstractSpinBox::UpDownArrows | 0 | Petites flèches de style classique. |
QAbstractSpinBox::PlusMinus | 1 | Symboles+ et -. |
QAbstractSpinBox::NoButtons | 2 | N'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.
| Constante | Valeur | Description |
|---|---|---|
QAbstractSpinBox::CorrectToPreviousValue | 0 | La spinbox reprend la dernière valeur valide. |
QAbstractSpinBox::CorrectToNearestValue | 1 | La spinbox reprend la valeur valide la plus proche. |
Voir aussi correctionMode.
enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled
| Constante | Valeur |
|---|---|
QAbstractSpinBox::StepNone | 0x00 |
QAbstractSpinBox::StepUpEnabled | 0x01 |
QAbstractSpinBox::StepDownEnabled | 0x02 |
Le type StepEnabled est un typedef pour QFlags<StepEnabledFlag>. Il stocke une combinaison OU de valeurs StepEnabledFlag.
enum QAbstractSpinBox::StepType
| Constante | Valeur |
|---|---|
QAbstractSpinBox::DefaultStepType | 0 |
QAbstractSpinBox::AdaptiveDecimalStepType | 1 |
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/Retour | Cette 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. |
| Haut | Cette touche permet d'appeler stepBy(1) |
| Vers le bas | Ceci invoquera stepBy(-1) |
| Page en haut | Ceci invoquera stepBy(10) |
| Page en bas | Ceci 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.