ButtonGroup QML Type
Groupe mutuellement exclusif de boutons à cocher. Plus d'informations...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
Propriétés
- buttons : list<AbstractButton>
- checkState : enumeration
(since QtQuick.Controls 2.4 (Qt 5.11)) - checkedButton : AbstractButton
- exclusive : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
Propriétés rattachées
- group : ButtonGroup
Signaux
- clicked(AbstractButton button)
(since QtQuick.Controls 2.1 (Qt 5.8))
Méthodes
- void addButton(AbstractButton button)
- void removeButton(AbstractButton button)
Description détaillée
ButtonGroup est un groupe non visuel de boutons qui s'excluent mutuellement. Il est utilisé avec des contrôles tels que RadioButton, où une seule des options peut être sélectionnée à la fois.
La manière la plus directe d'utiliser ButtonGroup est d'assigner une liste de boutons. Par exemple, la liste des enfants d'un positionneur ou d'une disposition qui gère un groupe de boutons mutuellement exclusifs.
ButtonGroup {
buttons: column.children
}
Column {
id: column
RadioButton {
checked: true
text: qsTr("DAB")
}
RadioButton {
text: qsTr("FM")
}
RadioButton {
text: qsTr("AM")
}
}Les boutons mutuellement exclusifs ne partagent pas toujours le même élément parent, ou la disposition parentale peut parfois contenir des éléments qui ne devraient pas être inclus dans le groupe de boutons. Dans ce cas, il est préférable d'utiliser la propriété group attached.
ButtonGroup { id: radioGroup }
Column {
Label {
text: qsTr("Radio:")
}
RadioButton {
checked: true
text: qsTr("DAB")
ButtonGroup.group: radioGroup
}
RadioButton {
text: qsTr("FM")
ButtonGroup.group: radioGroup
}
RadioButton {
text: qsTr("AM")
ButtonGroup.group: radioGroup
}
}Une autre option consiste à filtrer la liste des enfants. C'est particulièrement pratique si vous utilisez un répéteur pour la remplir, puisque le répéteur sera également un enfant de la disposition parentale :
ButtonGroup {
buttons: column.children.filter((child) => child !== repeater)
}
Column {
id: column
Repeater {
id: repeater
model: [ qsTr("DAB"), qsTr("AM"), qsTr("FM") ]
RadioButton {
required property string modelData
text: modelData
}
}
}Des cas d'utilisation plus avancés peuvent être traités à l'aide des méthodes addButton() et removeButton().
Voir également RadioButton et Contrôles de boutons.
Documentation sur les propriétés
buttons : list<AbstractButton>
Cette propriété contient la liste des boutons.
ButtonGroup {
buttons: column.children
}
Column {
id: column
RadioButton {
checked: true
text: qsTr("Option A")
}
RadioButton {
text: qsTr("Option B")
}
}Voir aussi group.
checkState : enumeration [since QtQuick.Controls 2.4 (Qt 5.11)]
Cette propriété contient l'état de contrôle combiné du groupe de boutons.
États disponibles :
| Constant | Description : Aucun des boutons n'est coché. |
|---|---|
Qt.Unchecked | Aucun des boutons n'est coché. |
Qt.PartiallyChecked | Certains boutons sont cochés. |
Qt.Checked | Tous les boutons sont cochés. |
En attribuant la valeur Qt.Unchecked ou Qt.Checked à l'état de contrôle d'un groupe de boutons non exclusifs, on désactive ou on contrôle tous les boutons du groupe, respectivement. Qt.PartiallyChecked est ignoré.
La définition de l'état de contrôle d'un groupe de boutons exclusifs à Qt.Unchecked désactive le bouton checkedButton. Qt.Checked et Qt.PartiallyChecked sont ignorés.
Cette propriété a été introduite dans QtQuick.Controls 2.4 (Qt 5.11).
checkedButton : AbstractButton
Cette propriété contient le bouton actuellement sélectionné dans un groupe exclusif, ou null s'il n'y en a pas ou si le groupe n'est pas exclusif.
Par défaut, il s'agit du premier bouton coché ajouté à un groupe de boutons exclusif.
Voir également exclusive.
exclusive : bool [since QtQuick.Controls 2.3 (Qt 5.10)]
Cette propriété indique si le groupe de boutons est exclusif. La valeur par défaut est true.
Si la valeur de cette propriété est true, un seul bouton du groupe peut être vérifié à un moment donné. L'utilisateur peut cliquer sur n'importe quel bouton pour le cocher, et ce bouton remplacera le bouton existant en tant que bouton coché dans le groupe.
Dans un groupe exclusif, l'utilisateur ne peut pas décocher le bouton actuellement coché en cliquant dessus ; il doit cliquer sur un autre bouton du groupe pour définir le nouveau bouton coché pour ce groupe.
Dans un groupe non exclusif, le fait de cocher ou de décocher des boutons n'affecte pas les autres boutons du groupe. En outre, la valeur de la propriété checkedButton est null.
Cette propriété a été introduite dans QtQuick.Controls 2.3 (Qt 5.10).
Documentation sur la propriété Attached
ButtonGroup.group : ButtonGroup
Cette propriété permet d'attacher un bouton à un groupe de boutons.
ButtonGroup { id: group }
RadioButton {
checked: true
text: qsTr("Option A")
ButtonGroup.group: group
}
RadioButton {
text: qsTr("Option B")
ButtonGroup.group: group
}Voir aussi buttons.
Documentation sur les signaux
[since QtQuick.Controls 2.1 (Qt 5.8)] clicked(AbstractButton button)
Ce signal est émis lorsqu'un bouton button du groupe a été cliqué.
Ce signal est pratique pour mettre en œuvre un gestionnaire de signal commun à tous les boutons d'un même groupe.
ButtonGroup {
buttons: column.children
onClicked: button => {
console.log("clicked:", button.text)
}
}
Column {
id: column
Button { text: "First" }
Button { text: "Second" }
Button { text: "Third" }
}Remarque : le gestionnaire correspondant est onClicked.
Ce signal a été introduit dans QtQuick.Controls 2.1 (Qt 5.8).
Voir aussi AbstractButton::clicked().
Documentation de la méthode
void addButton(AbstractButton button)
Ajoute une adresse button au groupe de boutons.
Remarque : il n'est généralement pas nécessaire d'ajouter manuellement des objets à un groupe de boutons. La propriété buttons et la propriété group attached fournissent une syntaxe pratique et déclarative.
Voir également buttons et group.
void removeButton(AbstractButton button)
Supprime un button du groupe de boutons.
© 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.