ButtonGroup QML Type
Groupe de boutons cochables mutuellement exclusifs. En savoir plus...
| 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 associé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 de boutons non visuel et mutuellement exclusif. Il s'utilise avec des contrôles tels que RadioButton, où une seule option peut être sélectionnée à la fois.
La manière la plus simple d’utiliser ButtonGroup consiste à lui attribuer une liste de boutons. Par exemple, la liste des enfants d’un positionneur ou d’une mise en page 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 mise en page parent peut parfois contenir des éléments qui ne doivent pas être inclus dans le groupe de boutons. Dans de tels cas, il est préférable d'utiliser la propriété attachée « group ».
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. Cela s'avère particulièrement pratique si vous utilisez un « repeater » pour la remplir, car ce dernier sera également un enfant de la mise en page parente :
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
}
}
}Les cas d’utilisation plus avancés peuvent être gérés à l’aide des méthodes ` addButton() ` et ` removeButton() `.
Voir également « RadioButton » et « Button Controls ».
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 également group.
checkState : enumeration [since QtQuick.Controls 2.4 (Qt 5.11)]
Cette propriété contient l'état combiné de sélection du groupe de boutons.
États disponibles :
| Constante | Description |
|---|---|
Qt.Unchecked | Aucun des boutons n'est coché. |
Qt.PartiallyChecked | Certains boutons sont cochés. |
Qt.Checked | Tous les boutons sont cochés. |
Définir l'état de sélection d'un groupe de boutons non exclusif sur « Qt.Unchecked » ou « Qt.Checked » désélectionne ou sélectionne respectivement tous les boutons du groupe. La valeur « Qt.PartiallyChecked » est ignorée.
Définir l'état de sélection d'un groupe de boutons exclusif sur « Qt.Unchecked » désélectionne l'option « checkedButton ». Les options « Qt.Checked » et « Qt.PartiallyChecked » sont ignorées.
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 la valeur « null » s'il n'y en a aucun 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 cette propriété est définie sur « true », un seul bouton du groupe peut être coché à un moment donné. L’utilisateur peut cliquer sur n’importe quel bouton pour le cocher ; ce bouton remplacera alors le bouton coché existant au sein du groupe.
Dans un groupe exclusif, l’utilisateur ne peut pas décocher le bouton actuellement coché en cliquant dessus ; il doit au contraire cliquer sur un autre bouton du groupe pour définir le nouveau bouton coché de 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. De plus, 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 les propriétés associées
ButtonGroup.group : ButtonGroup [attached]
Cette propriété associe 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 également 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 implémenter 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 un objet « button » au groupe de boutons.
Remarque : il n'est généralement pas nécessaire d'ajoutermanuellement des objets à un groupe de boutons. La propriété buttons et la propriété associée group offrent une syntaxe pratique et déclarative.
Voir également buttons et group.
void removeButton(AbstractButton button)
Supprime un élément « 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.