Sur cette page

SpinBox QML Type

Permet à l'utilisateur de choisir parmi un ensemble de valeurs prédéfinies. Plus d'informations...

Import Statement: import QtQuick.Controls
Inherits:

Control

Propriétés

Signaux

Méthodes

Description détaillée

Boîte à outils avec valeur numérique et boutons

SpinBox permet à l'utilisateur de choisir une valeur entière en cliquant sur les boutons indicateurs vers le haut ou vers le bas, ou en appuyant sur les touches haut ou bas du clavier. En option, SpinBox peut également être rendu editable, afin que l'utilisateur puisse saisir une valeur textuelle dans le champ de saisie.

Par défaut, SpinBox fournit des valeurs discrètes dans l'intervalle [0-99] avec une valeur stepSize de 1.

SpinBox {
    value: 50
}

Valeurs personnalisées

Spin box affichant des valeurs textuelles

Bien que SpinBox travaille sur des valeurs entières, il peut être personnalisé pour accepter des valeurs d'entrée arbitraires. L'extrait suivant montre comment validator, textFromValue et valueFromText peuvent être utilisés pour personnaliser le comportement par défaut.

SpinBox {
    id: spinBox
    from: 0
    to: items.length - 1
    value: 1 // "Medium"

    property list<string> items: ["Small", "Medium", "Large"]

    validator: RegularExpressionValidator {
        regularExpression: new RegExp("(Small|Medium|Large)", "i")
    }

    textFromValue: function(value) {
        return items[value];
    }

    valueFromText: function(text) {
        for (var i = 0; i < items.length; ++i) {
            if (items[i].toLowerCase().indexOf(text.toLowerCase()) === 0)
                return i
        }
        return spinBox.value
    }
}

Un préfixe et un suffixe peuvent être ajoutés à l'aide d'expressions régulières :

SpinBox {
    id: spinBox
    from: -100
    value: 11
    to: 100
    editable: true
    anchors.centerIn: parent

    property string prefix: "L="
    property string suffix: "m"

    readonly property regexp numberExtractionRegExp: /\D*?(-?\d*\.?\d*)\D*$/

    validator: RegularExpressionValidator { regularExpression: numberExtractionRegExp }

    textFromValue: function(value, locale) {
        return prefix + Number(value).toLocaleString(locale, 'f', 0) + suffix
    }

    valueFromText: function(text, locale) {
        return Number.fromLocaleString(locale, numberExtractionRegExp.exec(text)[1])
    }
}

Voir également Tumbler, Personnaliser SpinBox, et Gestion du focus dans les contrôles Qt Quick .

Documentation sur les propriétés

displayText : string [read-only, since QtQuick.Controls 2.4 (Qt 5.11)]

Cette propriété contient la valeur textuelle de la boîte à outils.

La valeur de la propriété est basée sur textFromValue et locale, et égale à :

var text = spinBox.textFromValue(spinBox.value, spinBox.locale)

Cette propriété a été introduite dans QtQuick.Controls 2.4 (Qt 5.11).

Voir aussi textFromValue.

down group

down.hovered : bool

down.implicitIndicatorHeight : real

down.implicitIndicatorWidth : real

down.indicator : Item

down.pressed : bool

Cette propriété groupée contient l'élément de l'indicateur de descente et ses propriétés associées.

La propriété down.hovered a été introduite dans QtQuick.Controls 2.1, et les propriétés down.implicitIndicatorWidth et down.implicitIndicatorHeight ont été introduites dans QtQuick.Controls 2.5.

Voir aussi decrease().

editable : bool

Cette propriété indique si la boîte à outils est modifiable. La valeur par défaut est false.

Voir également validator.

from : double

Cette propriété contient la valeur de départ de l'intervalle. La valeur par défaut est 0.

Voir également to et value.

inputMethodComposing : bool [read-only, since QtQuick.Controls 2.2 (Qt 5.9)]

Cette propriété indique si un texte partiel a été saisi par une méthode de saisie dans une zone de rotation modifiable.

Pendant qu'elle compose, une méthode de saisie peut s'appuyer sur des événements souris ou touche de la boîte tournante pour éditer ou valider le texte partiel. Cette propriété peut être utilisée pour déterminer quand désactiver les gestionnaires d'événements susceptibles d'interférer avec le bon fonctionnement d'une méthode de saisie.

Cette propriété a été introduite dans QtQuick.Controls 2.2 (Qt 5.9).

inputMethodHints : flags [since QtQuick.Controls 2.2 (Qt 5.9)]

Cette propriété fournit à la méthode de saisie des indications sur le contenu attendu de la boîte de dialogue et sur son fonctionnement.

La valeur par défaut est Qt.ImhDigitsOnly.

La valeur est une combinaison bit à bit de drapeaux ou Qt.ImhNone si aucun indice n'est défini.

Les drapeaux qui modifient le comportement sont :

  • Qt.ImhHiddenText - Les caractères doivent être cachés, comme c'est généralement le cas lors de la saisie de mots de passe.
  • Qt.ImhSensitiveData - Le texte saisi ne doit pas être stocké par la méthode de saisie active dans une mémoire persistante telle que le dictionnaire prédictif de l'utilisateur.
  • Qt.ImhNoAutoUppercase - La méthode de saisie ne doit pas essayer de passer automatiquement en majuscules à la fin d'une phrase.
  • Qt.ImhPreferNumbers - Les chiffres sont préférés (mais pas obligatoires).
  • Qt.ImhPreferUppercase - Les lettres majuscules sont préférées (mais pas obligatoires).
  • Qt.ImhPreferLowercase - Les lettres minuscules sont préférées (mais pas obligatoires).
  • Qt.ImhNoPredictiveText - N'utilise pas le texte prédictif (c'est-à-dire la recherche dans le dictionnaire) pendant la saisie.
  • Qt.ImhDate - L'éditeur de texte fonctionne comme un champ de date.
  • Qt.ImhTime - L'éditeur de texte fonctionne comme un champ de temps.

Les drapeaux qui limitent la saisie (drapeaux exclusifs) sont :

  • Qt.ImhDigitsOnly - Seuls les chiffres sont autorisés.
  • Qt.ImhFormattedNumbersOnly - Seule la saisie de nombres est autorisée. Cela inclut le point décimal et le signe moins.
  • Qt.ImhUppercaseOnly - Seule la saisie des lettres majuscules est autorisée.
  • Qt.ImhLowercaseOnly - Seule la saisie des lettres minuscules est autorisée.
  • Qt.ImhDialableCharactersOnly - Seuls les caractères permettant de composer un numéro de téléphone sont autorisés.
  • Qt.ImhEmailCharactersOnly - Seuls les caractères adaptés aux adresses électroniques sont autorisés.
  • Qt.ImhUrlCharactersOnly - Seuls les caractères convenant aux URL sont autorisés.

Masques :

  • Qt.ImhExclusiveInputMask - Ce masque produit un résultat non nul si l'un des drapeaux exclusifs est utilisé.

Cette propriété a été introduite dans QtQuick.Controls 2.2 (Qt 5.9).

live : bool [since 6.6]

Cette propriété détermine si le champ value est mis à jour lorsque l'utilisateur modifie le champ displayText. La valeur par défaut est false. Si cette propriété est true et que la valeur saisie par l'utilisateur est valide et se situe dans les limites de la boîte à outils [from, to], la valeur du champ SpinBox sera définie. Si cette propriété vaut false ou si la valeur saisie par l'utilisateur est en dehors des limites, la valeur ne sera pas mise à jour tant que les touches Entrée ou Retour n'auront pas été actionnées ou que le champ de saisie n'aura pas perdu le focus.

Cette propriété a été introduite dans Qt 6.6.

Voir également editable et displayText.

stepSize : double

Cette propriété définit la taille du pas. La valeur par défaut est 1.

Voir également increase() et decrease().

textFromValue : function

Cette propriété contient une fonction de rappel qui est appelée chaque fois qu'une valeur entière doit être convertie pour afficher du texte.

La fonction par défaut peut être remplacée pour afficher un texte personnalisé pour une valeur donnée. Cela s'applique aux spinboxes modifiables et non modifiables ; par exemple, lorsque l'on utilise les boutons haut et bas ou la molette de la souris pour incrémenter et décrémenter la valeur, la nouvelle valeur est convertie en texte d'affichage à l'aide de cette fonction.

La signature de la fonction de rappel est string function(value, locale). La fonction peut avoir un ou deux arguments, le premier étant la valeur à convertir et le second, facultatif, la locale à utiliser pour la conversion, le cas échéant.

L'implémentation par défaut effectue la conversion à l'aide de Number.toLocaleString() :

textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); }

Remarque : lors de l'application d'une implémentation personnalisée de textFromValue pour les spinboxes éditables, une implémentation correspondante de valueFromText doit être fournie pour pouvoir reconvertir le texte personnalisé en une valeur entière.

Voir aussi valueFromText, validator, et locale.

to : int

Cette propriété contient la valeur finale de l'intervalle. La valeur par défaut est 2.

Voir également from et value.

up group

up.hovered : bool

up.implicitIndicatorHeight : real

up.implicitIndicatorWidth : real

up.indicator : Item

up.pressed : bool

Cette propriété groupée contient l'élément de l'indicateur de progression et ses propriétés associées.

La propriété up.hovered a été introduite dans QtQuick.Controls 2.1, et les propriétés up.implicitIndicatorWidth et up.implicitIndicatorHeight ont été introduites dans QtQuick.Controls 2.5.

Voir aussi increase().

validator : Validator

Cette propriété contient le validateur de texte d'entrée pour les spinboxes éditables. Par défaut, SpinBox utilise IntValidator pour accepter la saisie de nombres entiers.

SpinBox {
    id: control
    validator: IntValidator {
        locale: control.locale.name
        bottom: Math.min(control.from, control.to)
        top: Math.max(control.from, control.to)
    }
}

Voir aussi editable, textFromValue, valueFromText, locale, et Validation du texte d'entrée.

value : int

Cette propriété contient la valeur dans l'intervalle from - to. La valeur par défaut est 0.

valueFromText : function

Cette propriété contient une fonction de rappel qui est appelée chaque fois qu'un texte saisi doit être converti en une valeur entière.

Cette fonction ne doit être remplacée que lorsque textFromValue est remplacé par une spinbox modifiable.

La signature de la fonction de rappel est int function(text, locale). La fonction peut avoir un ou deux arguments, le premier étant le texte à convertir et le second, facultatif, la locale à utiliser pour la conversion, le cas échéant.

L'implémentation par défaut effectue la conversion à l'aide de Number.fromLocaleString():

valueFromText: function(text, locale) { return Number.fromLocaleString(locale, text); }

Remarque : lors de l'application d'une implémentation personnalisée de textFromValue pour les spinboxes modifiables, une implémentation correspondante de valueFromText doit être fournie pour pouvoir reconvertir le texte personnalisé en une valeur entière.

Voir également textFromValue, validator, et locale.

wrap : bool [since QtQuick.Controls 2.3 (Qt 5.10)]

Cette propriété indique si le spinbox est enveloppé. La valeur par défaut est false.

Si la valeur de wrap est true, le fait de passer devant to change la valeur en from et vice versa.

Cette propriété a été introduite dans QtQuick.Controls 2.3 (Qt 5.10).

Documentation sur les signaux

[since QtQuick.Controls 2.2 (Qt 5.9)] valueModified()

Ce signal est émis lorsque la valeur du champ de saisie a été modifiée de manière interactive par l'utilisateur, que ce soit par le toucher, la souris, la roue ou les touches. Dans le cas d'une interaction via le clavier, le signal n'est émis que lorsque le texte a été accepté, c'est-à-dire lorsque les touches Entrée ou Retour sont enfoncées ou que le champ de saisie perd le focus.

Remarque : le gestionnaire correspondant est onValueModified.

Ce signal a été introduit dans QtQuick.Controls 2.2 (Qt 5.9).

Documentation de la méthode

void decrease()

Diminue la valeur de stepSize, ou de 1 si stepSize n'est pas défini.

Voir également stepSize.

void increase()

Augmente la valeur de stepSize, ou de 1 si stepSize n'est pas défini.

Voir également stepSize.

© 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.