ButtonGroup QML Type
Sich gegenseitig ausschließende Gruppe von ankreuzbaren Schaltflächen. Mehr...
Import Statement: | import QtQuick.Controls |
Inherits: |
Eigenschaften
- 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))
Beigefügte Eigenschaften
- group : ButtonGroup
Signale
- clicked(AbstractButton button)
(since QtQuick.Controls 2.1 (Qt 5.8))
Methoden
- void addButton(AbstractButton button)
- void removeButton(AbstractButton button)
Detaillierte Beschreibung
ButtonGroup ist eine nicht visuelle, sich gegenseitig ausschließende Gruppe von Schaltflächen. Sie wird mit Steuerelementen wie RadioButton verwendet, bei denen jeweils nur eine der Optionen ausgewählt werden kann.
Der einfachste Weg, ButtonGroup zu verwenden, besteht darin, eine Liste von Schaltflächen zuzuweisen. Zum Beispiel die Liste der Kinder eines Positionierers oder eines Layouts, das eine Gruppe von sich gegenseitig ausschließenden Schaltflächen verwaltet.
ButtonGroup { buttons: column.children } Column { id: column RadioButton { checked: true text: qsTr("DAB") } RadioButton { text: qsTr("FM") } RadioButton { text: qsTr("AM") } }
Sich gegenseitig ausschließende Schaltflächen haben nicht immer dasselbe übergeordnete Element, oder das übergeordnete Layout kann manchmal Elemente enthalten, die nicht in die Schaltflächengruppe aufgenommen werden sollten. Solche Fälle werden am besten mit der Eigenschaft group gehandhabt.
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 } }
Eine weitere Möglichkeit besteht darin, die Liste der untergeordneten Elemente zu filtern. Dies ist besonders praktisch, wenn Sie einen Repeater zum Auffüllen der Liste verwenden, da der Repeater ebenfalls ein Kind des übergeordneten Layouts ist:
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 } } }
Weitergehende Anwendungsfälle können mit den Methoden addButton()
und removeButton()
behandelt werden.
Siehe auch RadioButton und Button Controls.
Eigenschaft Dokumentation
buttons : list<AbstractButton> |
Diese Eigenschaft enthält die Liste der Schaltflächen.
ButtonGroup { buttons: column.children } Column { id: column RadioButton { checked: true text: qsTr("Option A") } RadioButton { text: qsTr("Option B") } }
Siehe auch group.
checkState : enumeration |
Diese Eigenschaft enthält den kombinierten Prüfstatus der Schaltflächengruppe.
Verfügbare Zustände:
Konstant | Beschreibung |
---|---|
Qt.Unchecked | Keine der Schaltflächen ist aktiviert. |
Qt.PartiallyChecked | Einige der Schaltflächen sind aktiviert. |
Qt.Checked | Alle Schaltflächen sind aktiviert. |
Wenn Sie den Prüfstatus einer nicht exklusiven Schaltflächengruppe auf Qt.Unchecked
oder Qt.Checked
setzen, werden alle Schaltflächen in der Gruppe geprüft bzw. nicht geprüft. Qt.PartiallyChecked
wird ignoriert.
Das Setzen des Prüfstatus einer exklusiven Schaltflächengruppe auf Qt.Unchecked
hebt die Prüfung der checkedButton auf. Qt.Checked
und Qt.PartiallyChecked
werden ignoriert.
Diese Eigenschaft wurde in QtQuick.Controls 2.4 (Qt 5.11) eingeführt.
checkedButton : AbstractButton |
Diese Eigenschaft hält den aktuell ausgewählten Button in einer exklusiven Gruppe, oder null
wenn es keine gibt oder die Gruppe nicht exklusiv ist.
Standardmäßig ist es die erste markierte Schaltfläche, die zu einer exklusiven Schaltflächengruppe hinzugefügt wurde.
Siehe auch exclusive.
exclusive : bool |
Diese Eigenschaft gibt an, ob die Schaltflächengruppe exklusiv ist. Der Standardwert ist true
.
Wenn diese Eigenschaft true
lautet, kann immer nur eine Schaltfläche in der Gruppe geprüft werden. Der Benutzer kann auf eine beliebige Schaltfläche klicken, um sie zu markieren, und diese Schaltfläche ersetzt die vorhandene Schaltfläche als markierte Schaltfläche in der Gruppe.
In einer exklusiven Gruppe kann der Benutzer die Markierung der aktuell markierten Schaltfläche nicht durch Anklicken aufheben; stattdessen muss eine andere Schaltfläche in der Gruppe angeklickt werden, um die neue markierte Schaltfläche für diese Gruppe festzulegen.
In einer nicht-exklusiven Gruppe wirkt sich das Aktivieren und Deaktivieren von Schaltflächen nicht auf die anderen Schaltflächen der Gruppe aus. Außerdem ist der Wert der Eigenschaft checkedButton null
.
Diese Eigenschaft wurde in QtQuick.Controls 2.3 (Qt 5.10) eingeführt.
Dokumentation der Eigenschaft Attached
ButtonGroup.group : ButtonGroup |
Diese Eigenschaft fügt eine Schaltfläche an eine Schaltflächengruppe an.
ButtonGroup { id: group } RadioButton { checked: true text: qsTr("Option A") ButtonGroup.group: group } RadioButton { text: qsTr("Option B") ButtonGroup.group: group }
Siehe auch buttons.
Signal-Dokumentation
|
Dieses Signal wird ausgegeben, wenn ein button in der Gruppe angeklickt wurde.
Dieses Signal ist praktisch für die Implementierung eines gemeinsamen Signalhandlers für alle Schaltflächen in derselben Gruppe.
ButtonGroup { buttons: column.children onClicked: button => { console.log("clicked:", button.text) } } Column { id: column Button { text: "First" } Button { text: "Second" } Button { text: "Third" } }
Hinweis: Der entsprechende Handler ist onClicked
.
Dieses Signal wurde in QtQuick.Controls 2.1 (Qt 5.8) eingeführt.
Siehe auch AbstractButton::clicked().
Methode Dokumentation
void addButton(AbstractButton button) |
void removeButton(AbstractButton button) |
© 2025 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.