En esta página

DialogButtonBox QML Type

Botonera utilizada en los diálogos. Más...

Import Statement: import QtQuick.Controls
Inherits:

Container

Propiedades

Propiedades anexas

Señales

Métodos

Descripción detallada

Los cuadros de diálogo y de mensajes suelen presentar los botones en un orden que se ajusta a las directrices de la interfaz para esa plataforma. Invariablemente, diferentes plataformas tienen sus botones de diálogo en diferentes órdenes. DialogButtonBox permite a un desarrollador añadirle botones y utilizará automáticamente el orden apropiado para la plataforma del usuario.

La mayoría de los botones de un diálogo siguen ciertos roles. Tales roles incluyen:

  • Aceptar o rechazar el diálogo.
  • Pedir ayuda.
  • Realizar acciones en el propio diálogo (como restablecer campos o aplicar cambios).

También puede haber formas alternativas de rechazar el diálogo que pueden causar resultados destructivos.

La mayoría de los cuadros de diálogo tienen botones que casi pueden considerarse estándar (por ejemplo, los botones OK y Cancel ). A veces es conveniente crear estos botones de forma estándar.

Hay un par de maneras de usar DialogButtonBox. Una forma es especificar los botones estándar (por ejemplo, OK, Cancel, Save) y dejar que la caja de botones configure los botones.

Botonera de diálogo con botones OK y Cancelar

DialogButtonBox {
    standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel

    onAccepted: console.log("Ok clicked")
    onRejected: console.log("Cancel clicked")
}

Alternativamente, los botones y sus roles pueden ser especificados a mano:

DialogButtonBox {
    Button {
        text: qsTr("Save")
        DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
    }
    Button {
        text: qsTr("Close")
        DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole
    }
}

También se pueden mezclar y combinar botones normales y botones estándar.

Cuando se pulsa un botón en la caja de botones, se emite la señal clicked() para el botón real que se pulsa. Además, las siguientes señales se emiten automáticamente cuando se pulsa un botón con el rol o roles respectivos:

FunciónSeñal
AcceptRole, YesRoleaccepted()
ApplyRoleapplied()
DiscardRolediscarded()
HelpRolehelpRequested()
RejectRole, NoRolerejected()
ResetRolereset()

Véase también Dialog.

Documentación de propiedades

alignment : flags

Esta propiedad contiene la alineación de los botones.

Valores posibles:

ConstanteDescripción
Qt.AlignLeftLos botones están alineados a la izquierda.
Qt.AlignHCenterLos botones están centrados horizontalmente.
Qt.AlignRightLos botones están alineados a la derecha.
Qt.AlignTopLos botones están alineados hacia arriba.
Qt.AlignVCenterLos botones están centrados verticalmente.
Qt.AlignBottomLos botones están alineados hacia abajo.

Por defecto, no se establece ninguna alineación específica; la lectura de la propiedad alignment arroja un valor de bandera por defecto que se compara igual a 0. La propiedad puede restablecerse a este valor asignándole undefined. En este caso, los botones se redimensionan para ocupar el espacio disponible.

Nota: Esta propiedad asume una disposición horizontal de los botones. Tenga en cuenta que al ejecutar el estilo iOS, DialogButtonBox utilizará un diseño vertical si esta propiedad tiene un valor distinto de undefined y hay más de dos botones. En todos los demás casos, los botones se dispondrán horizontalmente.

buttonLayout : enumeration [since QtQuick.Controls 2.5 (Qt 5.12)]

Esta propiedad contiene la política de disposición de botones que se utilizará al organizar los botones contenidos en la caja de botones. El valor por defecto es específico de la plataforma.

Valores disponibles:

ConstanteDescripción
DialogButtonBox.WinLayoutUtiliza una política apropiada para aplicaciones en Windows.
DialogButtonBox.MacLayoutUtilice una política apropiada para aplicaciones en macOS.
DialogButtonBox.KdeLayoutUsar una política apropiada para aplicaciones en KDE.
DialogButtonBox.GnomeLayoutUtilizar una política apropiada para aplicaciones en GNOME.
DialogButtonBox.AndroidLayoutUsar una política apropiada para aplicaciones en Android.

Esta propiedad se introdujo en QtQuick.Controls 2.5 (Qt 5.12).

defaultButton : AbstractButton [since 6.11]

Esta propiedad contiene el botón por defecto.

El botón por defecto será highlighted y recibirá el foco.

Sólo puede haber un botón por defecto en la caja de botones. Esta propiedad no puede utilizarse junto con la propiedad defaultStandardButton.

Esta propiedad se introdujo en Qt 6.11.

Ver también standardButtons y defaultStandardButton.

defaultStandardButton : enumeration [since 6.11]

Esta propiedad contiene el botón estándar por defecto.

El botón estándar por defecto será highlighted y recibirá el foco.

Sólo un botón de la caja de botones puede ser predeterminado. Esta propiedad no puede utilizarse junto con la propiedad defaultButton.

Esta propiedad se introdujo en Qt 6.11.

Ver también standardButtons y defaultButton.

delegate : Component

Esta propiedad contiene un delegado para crear botones estándar.

DialogButtonBox no se apropia del delegado.

Véase también standardButtons.

position : enumeration

Esta propiedad contiene la posición de la caja de botones.

Nota: Si la caja de botones se asigna como cabecera o pie de página de ApplicationWindow o Página, la posición apropiada se establece automáticamente.

Valores posibles:

ConstanteDescripción
DialogButtonBox.HeaderLa caja de botones está en la parte superior, como cabecera de ventana o de página.
DialogButtonBox.FooterLa caja de botones está en la parte inferior, como pie de ventana o de página.

El valor por defecto es Footer.

Véase también Dialog::header y Dialog::footer.

standardButtons : enumeration

Esta propiedad contiene una combinación de botones estándar que son utilizados por la caja de botones.

DialogButtonBox {
    standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel

    onAccepted: console.log("Ok clicked")
    onRejected: console.log("Cancel clicked")
}

Los botones se colocarán en el orden apropiado para la plataforma del usuario.

Posibles banderas:

ConstanteDescripción
DialogButtonBox.OkUn botón "OK" definido con el AcceptRole.
DialogButtonBox.OpenBotón "Abrir" definido en AcceptRole.
DialogButtonBox.SaveBotón "Guardar" definido en AcceptRole.
DialogButtonBox.CancelBotón "Cancelar" definido en RejectRole.
DialogButtonBox.CloseBotón "Cerrar" definido en RejectRole.
DialogButtonBox.DiscardUn botón "Descartar" o "No guardar", según la plataforma, definido en DestructiveRole.
DialogButtonBox.ApplyUn botón "Aplicar" definido en ApplyRole.
DialogButtonBox.ResetUn botón "Restablecer" definido en ResetRole.
DialogButtonBox.RestoreDefaultsUn botón "Restaurar valores predeterminados" definido en ResetRole.
DialogButtonBox.HelpBotón "Ayuda" definido en HelpRole.
DialogButtonBox.SaveAllBotón "Guardar todo" definido en AcceptRole.
DialogButtonBox.YesBotón "Sí" definido en YesRole.
DialogButtonBox.YesToAllBotón "Sí a todo" definido en YesRole.
DialogButtonBox.NoBotón "No" definido en NoRole.
DialogButtonBox.NoToAllBotón "No a todo" definido en NoRole.
DialogButtonBox.AbortBotón "Abortar" definido en RejectRole.
DialogButtonBox.RetryBotón "Reintentar" definido en AcceptRole.
DialogButtonBox.IgnoreBotón "Ignorar" definido en AcceptRole.
DialogButtonBox.NoButtonUn botón "No válido".

Véase también standardButton().

Documentación de propiedades adjuntas

DialogButtonBox.buttonBox : DialogButtonBox [read-only]

Esta propiedad adjunta contiene la caja de botones que gestiona este botón, o null si el botón no está en una caja de botones.

DialogButtonBox.buttonRole : enumeration

Esta propiedad adjunta contiene el rol de cada botón en una caja de botones.

DialogButtonBox {
    Button {
        text: qsTr("Save")
        DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
    }
    Button {
        text: qsTr("Close")
        DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole
    }
}

Valores disponibles:

ConstanteDescripción
DialogButtonBox.InvalidRoleEl botón no es válido.
DialogButtonBox.AcceptRoleAl hacer clic en el botón, el cuadro de diálogo se acepta (por ejemplo, OK).
DialogButtonBox.RejectRoleAl hacer clic en el botón, el diálogo se rechaza (por ejemplo, Cancel).
DialogButtonBox.DestructiveRoleHacer clic en el botón provoca un cambio destructivo (por ejemplo, para descartar cambios) y cierra el diálogo.
DialogButtonBox.ActionRoleHacer clic en el botón provoca cambios en los elementos del diálogo.
DialogButtonBox.HelpRoleSe puede pulsar el botón para solicitar ayuda.
DialogButtonBox.YesRoleEl botón es del tipo "Sí".
DialogButtonBox.NoRoleEl botón es similar a "No".
DialogButtonBox.ResetRoleEl botón restablece los valores predeterminados de los campos del cuadro de diálogo.
DialogButtonBox.ApplyRoleEl botón aplica los cambios actuales.

Documentación de señales

accepted()

Esta señal se emite cuando se pulsa un botón definido con las etiquetas AcceptRole o YesRole.

Nota: El manejador correspondiente es onAccepted.

Véase también rejected(), clicked(), y helpRequested().

[since QtQuick.Controls 2.3 (Qt 5.10)] applied()

Esta señal se emite cuando se pulsa un botón definido con ApplyRole.

Nota: El manejador correspondiente es onApplied.

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

Ver también discarded() y reset().

clicked(AbstractButton button)

Esta señal se emite cuando se pulsa un button dentro de la caja de botones.

Nota: El manejador correspondiente es onClicked.

Véase también accepted(), rejected(), y helpRequested().

[since QtQuick.Controls 2.3 (Qt 5.10)] discarded()

Esta señal se emite cuando se pulsa un botón definido con DiscardRole.

Nota: El manejador correspondiente es onDiscarded.

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

Ver también reset() y applied().

helpRequested()

Esta señal se emite cuando se pulsa un botón definido con HelpRole.

Nota: El manejador correspondiente es onHelpRequested.

Véase también accepted(), rejected(), y clicked().

rejected()

Esta señal se emite cuando se pulsa un botón definido con las etiquetas RejectRole o NoRole.

Nota: El manejador correspondiente es onRejected.

Véase también accepted(), helpRequested(), y clicked().

[since QtQuick.Controls 2.3 (Qt 5.10)] reset()

Esta señal se emite cuando se pulsa un botón definido con ResetRole.

Nota: El manejador correspondiente es onReset.

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

Ver también discarded() y applied().

Documentación del Método

AbstractButton standardButton(StandardButton button)

Devuelve la norma especificada button, o null si no existe.

Véase también standardButtons.

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