DialogButtonBox QML 类型

用于对话框中的按钮框。 更多信息...

导入语句import QtQuick.Controls
继承

Container

属性

附加属性

信号

方法

详细描述

对话框和信息框通常以符合该平台界面指南的顺序显示按钮。不同的平台可能有不同顺序的对话框按钮。DialogButtonBox 允许开发者为它添加按钮,并会自动使用用户平台的适当顺序。

大多数对话框按钮遵循某些角色。这些角色包括

  • 接受或拒绝对话框。
  • 请求帮助。
  • 对对话框本身执行操作(例如重置字段或应用更改)。

还可以有其他取消对话框的方法,这可能造成破坏性后果。

大多数对话框都有几乎可以被认为是标准的按钮(例如 OKCancel 按钮)。有时以标准方式创建这些按钮很方便。

使用 DialogButtonBox 有几种方法。一种方法是指定标准按钮(例如 OKCancelSave)并让按钮框设置按钮。

DialogButtonBox {
    standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel

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

或者,可以手动指定按钮及其角色

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

您还可以混合使用普通按钮和标准按钮。

当在按钮框中点击按钮时,会发出clicked() 信号,用于实际的按下按钮。此外,按下具有相应角色的按钮时,还会自动发出以下信号

角色信号
AcceptRole, YesRoleaccepted()
ApplyRole应用()
DiscardRole丢弃()
HelpRolehelpRequested()
RejectRole, NoRolerejected()
ResetRole重置()

另请参阅 Dialog.

属性文档

alignment : flags

这个属性包含按钮的对齐方式。

可能值

常量描述
undefined按钮将调整大小以填充可用空间。
Qt.AlignLeft按钮左对齐。
Qt.AlignHCenter按钮水平居中。
Qt.AlignRight按钮右对齐。
Qt.AlignTop按钮顶对齐。
Qt.AlignVCenter按钮垂直居中。
Qt.AlignBottom按钮底对齐。

默认值是 undefined

注意: 此属性假定按钮的水平布局。当DialogButtonBox作为一个头部或页脚,适用于iOS样式,当包含超过两个按钮时,使用垂直布局。如果设置为除undefined以外的任何值,其按钮布局将以水平进行。


buttonLayout : 枚举 [自 QtQuick.Controls 2.5 (Qt 5.12)]

这个属性包含当在按钮框中安排按钮时要使用的布局策略。默认值是平台特定的。

可用值

常量描述
DialogButtonBox.WinLayout使用适用于 Windows 应用的策略。
DialogButtonBox.MacLayout使用适用于 macOS 应用的策略。
DialogButtonBox.KdeLayout使用适用于 KDE 应用的策略。
DialogButtonBox.GnomeLayout使用适用于 GNOME 应用的策略。
DialogButtonBox.AndroidLayout使用适用于 Android 应用的策略。

这个属性在 QtQuick.Controls 2.5 (Qt 5.12)中被引入。


delegate : 组件

这个属性包含用于创建标准按钮的代理。

另请参阅 standardButtons.


position : 枚举

这个属性包含按钮框的位置。

注意: 如果按钮框被指定为ApplicationWindow或页面的头部或页脚,合适的值将自动设置。

可能值

常量描述
DialogButtonBox.Header按钮框在顶部,作为窗口或页面头部。
DialogButtonBox.Footer按钮框在底部,作为窗口或页面页脚。

默认值是 Footer

另请参阅 Dialog::headerDialog::footer.


standardButtons : 枚举

这个属性包含按钮框使用的标准按钮组合。

DialogButtonBox {
    standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel

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

按钮将按用户平台的适当顺序定位。

可能标志

常量描述
DialogButtonBox.Ok使用 AcceptRole 定义的“确定”按钮。
DialogButtonBox.Open使用 AcceptRole 定义的“打开”按钮。
DialogButtonBox.Save使用AcceptRole定义的“保存”按钮。
DialogButtonBox.Cancel使用RejectRole定义的“取消”按钮。
DialogButtonBox.Close使用RejectRole定义的“关闭”按钮。
DialogButtonBox.Discard根据平台,定义为“丢弃”或“不保存”的按钮,使用DestructiveRole
DialogButtonBox.Apply使用ApplyRole定义的“应用”按钮。
DialogButtonBox.Reset使用ResetRole定义的“重置”按钮。
DialogButtonBox.RestoreDefaults使用ResetRole定义的“恢复默认值”按钮。
DialogButtonBox.Help使用HelpRole定义的“帮助”按钮。
DialogButtonBox.SaveAll使用AcceptRole定义的“全部保存”按钮。
DialogButtonBox.Yes使用YesRole定义的“是”按钮。
DialogButtonBox.YesToAll使用YesRole定义的“全部是”按钮。
DialogButtonBox.No使用NoRole定义的“否”按钮。
DialogButtonBox.NoToAll使用NoRole定义的“全部否”按钮。
DialogButtonBox.Abort使用RejectRole定义的“中止”按钮。
DialogButtonBox.Retry使用AcceptRole定义的“重试”按钮。
DialogButtonBox.Ignore使用AcceptRole定义的“忽略”按钮。
DialogButtonBox.NoButton一个无效的按钮。

另请参阅standardButton


附加属性文档

DialogButtonBox.buttonBox : DialogButtonBox [只读]

这个附加属性保存管理此按钮的按钮框,如果按钮不在按钮框中,则为null


DialogButtonBox.buttonRole : enumeration

这个附加属性保存按钮框中每个按钮的角色。

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

可用值

常量描述
DialogButtonBox.InvalidRole按钮无效。
DialogButtonBox.AcceptRole单击按钮会导致对话框接受(例如 OK)。
DialogButtonBox.RejectRole单击按钮会导致对话框拒绝(例如 Cancel)。
DialogButtonBox.DestructiveRole单击按钮会导致破坏性更改(例如,丢弃更改)并关闭对话框。
DialogButtonBox.ActionRole单击按钮会导致对话框内部元素的更改。
DialogButtonBox.HelpRole按钮可以单击以请求帮助。
DialogButtonBox.YesRole按钮是一个类似于“是”的按钮。
DialogButtonBox.NoRole按钮是一个类似于“否”的按钮。
DialogButtonBox.ResetRole按钮将对话框字段重置为默认值。
DialogButtonBox.ApplyRole按钮应用当前更改。

信使文档

accepted()

此信号在定义了 AcceptRoleYesRole 的按钮被单击时发出。

注意:相应的处理程序是 onAccepted

另请参阅rejected(), clicked() 和 helpRequested


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

此信号在定义了 ApplyRole 的按钮被单击时发出。

注意:相应的处理程序是 onApplied

此信号在 QtQuick.Controls 2.3 (Qt 5.10) 中引入。

另请参阅 discarded() 和 reset


clicked(AbstractButton button)

当按钮框中的按钮被点击时,会发出此信号。

注意:相应的处理程序是 onClicked

另请参阅 accepted(),rejected(),和 helpRequested


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

当使用 DiscardRole 定义的按钮被点击时,会发出此信号。

注意:相应的处理程序是 onDiscarded

此信号在 QtQuick.Controls 2.3 (Qt 5.10) 中引入。

另请参阅 reset() 和 applied


helpRequested()

当使用 HelpRole 定义的按钮被点击时,会发出此信号。

注意:相应的处理程序是 onHelpRequested

另请参阅 accepted(),rejected(),和 clicked


rejected()

当使用 RejectRoleNoRole 定义的按钮被点击时,会发出此信号。

注意:相应的处理程序是 onRejected

另请参阅 accepted(),helpRequested(),和 clicked


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

当使用 ResetRole 定义的按钮被点击时,会发出此信号。

注意:相应的处理程序是 onReset

此信号在 QtQuick.Controls 2.3 (Qt 5.10) 中引入。

另请参阅 discarded() 和 applied


方法文档

AbstractButton standardButton(StandardButton button)

返回指定的标准 按钮,如果不存在则返回 null

另请参阅 standardButtons.


© 2024 Qt公司有限公司。此处包含的文档贡献者是各自版权的所有者。此处提供的文档是根据自由软件基金会发布的 GNU自由文档许可版本1.3 条款许可的。Qt及其相关商标是世界范围内芬兰和/或其他国家的 Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。