En esta página

ButtonGroup QML Type

Grupo mutuamente excluyente de botones comprobables. Más...

Import Statement: import QtQuick.Controls
Inherits:

QtObject

Propiedades

Propiedades anexas

Señales

  • clicked(AbstractButton button) (since QtQuick.Controls 2.1 (Qt 5.8))

Métodos

Descripción detallada

ButtonGroup es un grupo de botones no visuales y mutuamente excluyentes. Se utiliza con controles como RadioButton, donde sólo se puede seleccionar una de las opciones a la vez.

La forma más sencilla de utilizar ButtonGroup es asignar una lista de botones. Por ejemplo, la lista de hijos de un posicionador o un layout que gestiona un grupo de botones mutuamente excluyentes.

ButtonGroup {
    buttons: column.children
}

Column {
    id: column

    RadioButton {
        checked: true
        text: qsTr("DAB")
    }

    RadioButton {
        text: qsTr("FM")
    }

    RadioButton {
        text: qsTr("AM")
    }
}

Los botones mutuamente excluyentes no siempre comparten el mismo elemento padre, o el layout padre puede contener a veces elementos que no deberían incluirse en el grupo de botones. Estos casos se gestionan mejor utilizando la propiedad adjunta 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
    }
}

Otra opción es filtrar la lista de hijos. Esto es especialmente útil si está utilizando un repetidor para rellenarla, ya que el repetidor también será un hijo del diseño padre:

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
        }
    }
}

Se pueden manejar casos de uso más avanzados utilizando los métodos addButton() y removeButton().

Véase también RadioButton y Controles de botón.

Documentación de propiedades

buttons : list<AbstractButton>

Esta propiedad contiene la lista de botones.

ButtonGroup {
    buttons: column.children
}

Column {
    id: column

    RadioButton {
        checked: true
        text: qsTr("Option A")
    }

    RadioButton {
        text: qsTr("Option B")
    }
}

Véase también group.

checkState : enumeration [since QtQuick.Controls 2.4 (Qt 5.11)]

Esta propiedad contiene el estado de comprobación combinado del grupo de botones.

Estados disponibles:

ConstanteDescripción
Qt.UncheckedNinguno de los botones está marcado.
Qt.PartiallyCheckedAlgunos botones están marcados.
Qt.CheckedTodos los botones están seleccionados.

Si se establece el estado de comprobación de un grupo de botones no exclusivo en Qt.Unchecked o Qt.Checked, se desactivan o comprueban todos los botones del grupo, respectivamente. Qt.PartiallyChecked se ignora.

Establecer el estado de comprobación de un grupo de botones exclusivo a Qt.Unchecked deselecciona los botones checkedButton. Qt.Checked y Qt.PartiallyChecked se ignoran.

Esta propiedad se introdujo en QtQuick.Controls 2.4 (Qt 5.11).

checkedButton : AbstractButton

Esta propiedad contiene el botón actualmente seleccionado en un grupo exclusivo, o null si no hay ninguno o el grupo no es exclusivo.

Por defecto, es el primer botón marcado añadido a un grupo de botones exclusivo.

Véase también exclusive.

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

Esta propiedad indica si el grupo de botones es exclusivo. El valor por defecto es true.

Si esta propiedad es true, entonces sólo un botón del grupo puede ser marcado en un momento dado. El usuario puede hacer clic en cualquier botón para marcarlo, y ese botón sustituirá al existente como botón marcado en el grupo.

En un grupo exclusivo, el usuario no puede desmarcar el botón actualmente marcado haciendo clic sobre él; en su lugar, debe hacer clic en otro botón del grupo para establecer el nuevo botón marcado para ese grupo.

En un grupo no exclusivo, marcar y desmarcar botones no afecta a los demás botones del grupo. Además, el valor de la propiedad checkedButton es null.

Esta propiedad se introdujo en QtQuick.Controls 2.3 (Qt 5.10).

Documentación de la propiedad Attached

ButtonGroup.group : ButtonGroup

Esta propiedad adjunta un botón a un grupo de botones.

ButtonGroup { id: group }

RadioButton {
    checked: true
    text: qsTr("Option A")
    ButtonGroup.group: group
}

RadioButton {
    text: qsTr("Option B")
    ButtonGroup.group: group
}

Véase también buttons.

Documentación sobre señales

[since QtQuick.Controls 2.1 (Qt 5.8)] clicked(AbstractButton button)

Esta señal se emite cuando se hace clic en un button del grupo.

Esta señal es conveniente para implementar un manejador de señales común para todos los botones del mismo grupo.

ButtonGroup {
    buttons: column.children
    onClicked: button => {
        console.log("clicked:", button.text)
    }
}

Column {
    id: column
    Button { text: "First" }
    Button { text: "Second" }
    Button { text: "Third" }
}

Nota: El manejador correspondiente es onClicked.

Esta señal se introdujo en QtQuick.Controls 2.1 (Qt 5.8).

Ver también AbstractButton::clicked().

Documentación del método

void addButton(AbstractButton button)

Añade un button al grupo de botones.

Nota: Normalmente no es necesario añadir objetos manualmente a un grupo de botones. La propiedad buttons y la propiedad adjunta group proporcionan una sintaxis conveniente y declarativa.

Véase también buttons y group.

void removeButton(AbstractButton button)

Elimina un button del grupo de botones.

Nota: Normalmente no es necesario eliminar objetos manualmente de un grupo de botones. La propiedad buttons y la propiedad adjunta group proporcionan una sintaxis conveniente y declarativa.

Véase también buttons y group.

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