DialogButtonBox QML Type
用于对话框的按钮框。更多内容...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
属性
- alignment : flags
- buttonLayout : enumeration
(since QtQuick.Controls 2.5 (Qt 5.12)) - defaultButton : AbstractButton
(since 6.11) - defaultStandardButton : enumeration
(since 6.11) - delegate : Component
- position : enumeration
- standardButtons : enumeration
关联属性
- buttonBox : DialogButtonBox
- buttonRole : enumeration
信号
- accepted()
- applied()
(since QtQuick.Controls 2.3 (Qt 5.10)) - clicked(AbstractButton button)
- discarded()
(since QtQuick.Controls 2.3 (Qt 5.10)) - helpRequested()
- rejected()
- reset()
(since QtQuick.Controls 2.3 (Qt 5.10))
方法
- AbstractButton standardButton(StandardButton button)
详细说明
对话框和消息框通常会按照符合该平台界面指南的顺序排列按钮。不同平台的对话框按钮排列顺序必然各不相同。DialogButtonBox 允许开发人员向其中添加按钮,并会自动采用适合用户平台的排列顺序。
对话框中的大多数按钮都承担着特定的功能,这些功能包括:
- 接受或拒绝对话框。
- 请求帮助。
- 对对话框本身执行操作(例如重置字段或应用更改)。
此外,还可能存在其他关闭对话框的方式,这些方式可能会导致破坏性后果。
大多数对话框中的按钮几乎可以被视为标准按钮(例如“OK ”和“Cancel ”按钮)。有时采用标准方式创建这些按钮会比较方便。
使用 DialogButtonBox 有几种方法。一种方法是指定标准按钮(例如OK 、Cancel 、Save ),然后让按钮框自动设置这些按钮。

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,YesRole | accepted() |
ApplyRole | applied() |
DiscardRole | discarded() |
HelpRole | helpRequested() |
RejectRole,NoRole | rejected() |
ResetRole | reset() |
另请参阅 Dialog 。
属性文档
alignment : flags
该属性用于设置按钮的对齐方式。
可能的取值:
| 常量 | 描述 |
|---|---|
Qt.AlignLeft | 按钮对齐于左侧。 |
Qt.AlignHCenter | 按钮水平居中。 |
Qt.AlignRight | 按钮对齐到右侧。 |
Qt.AlignTop | 按钮顶部对齐。 |
Qt.AlignVCenter | 按钮垂直居中。 |
Qt.AlignBottom | 按钮对齐到底部。 |
默认情况下,未设置特定的对齐方式;读取对齐属性将返回一个默认标志值,该值等同于 0。通过将该属性赋值为 `undefined `,可将其重置为该值。此时,按钮将调整大小以填满可用空间。
注意:此 属性假设按钮采用水平布局。请注意,在运行iOS 样式时,如果该属性设置为除 `undefined ` 以外的任何值,且按钮数量超过两个,则 `DialogButtonBox ` 将采用垂直布局。在所有其他情况下,按钮将按水平方向排列。
buttonLayout : enumeration [since 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)中引入。
defaultButton : AbstractButton [since 6.11]
此属性用于指定默认按钮。
默认按钮将设置为highlighted ,并获得焦点。
按钮框中仅能将一个按钮设为默认按钮。该属性不能与defaultStandardButton 属性同时使用。
该属性于 Qt 6.11 中引入。
另请参阅 standardButtons 和defaultStandardButton 。
defaultStandardButton : enumeration [since 6.11]
该属性存储默认标准按钮。
默认标准按钮将设置为highlighted ,并获得焦点。
按钮框中仅能将一个按钮设为默认按钮。该属性不能与defaultButton 属性同时使用。
该属性自 Qt 6.11 起引入。
另请参阅 standardButtons 和defaultButton 。
delegate : Component
该属性保存了一个用于创建标准按钮的委托。
DialogButtonBox 不会获取该委托的所有权。
另请参阅 standardButtons 。
position : enumeration
此属性用于指定按钮框的位置。
注意:如果 将按钮框指定为ApplicationWindow 或Page的页眉或页脚,系统会自动设置相应的位置。
可能的值:
| 常量 | 描述 |
|---|---|
DialogButtonBox.Header | 按钮框位于顶部,作为窗口或页面的页眉。 |
DialogButtonBox.Footer | 按钮框位于底部,作为窗口或页面的页脚。 |
默认值为Footer 。
另请参阅 Dialog::header 和Dialog::footer 。
standardButtons : enumeration
此属性包含按钮框所使用的标准按钮组合。
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 [read-only attached]
此附加属性包含管理该按钮的按钮框,如果该按钮未位于任何按钮框中,则为null 。
DialogButtonBox.buttonRole : enumeration [attached]
此附加属性用于指定按钮框中每个按钮的角色。
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 | 该按钮将应用当前更改。 |
Signal 文档
accepted()
当点击使用 `AcceptRole ` 或 `YesRole ` 定义的按钮时,会触发此信号。
注意: 相应的处理程序 是onAccepted 。
另请参阅 rejected()、clicked() 和helpRequested()。
[since QtQuick.Controls 2.3 (Qt 5.10)] applied()
当点击使用ApplyRole 定义的按钮时,会触发此信号。
注意: 相应的处理函数 是onApplied 。
该信号在 QtQuick.Controls 2.3(Qt 5.10)中引入。
clicked(AbstractButton button)
当按钮框内的button 被点击时,会触发此信号。
注意: 相应的处理程序 是onClicked 。
另请参阅 accepted()、rejected() 和helpRequested()。
[since QtQuick.Controls 2.3 (Qt 5.10)] discarded()
当点击使用DiscardRole 定义的按钮时,会触发此信号。
注意: 相应的处理函数 是onDiscarded 。
该信号在 QtQuick.Controls 2.3(Qt 5.10)中引入。
helpRequested()
当点击使用HelpRole 定义的按钮时,会触发此信号。
注意: 相应的处理程序 是onHelpRequested 。
另请参阅 accepted()、rejected() 和clicked()。
rejected()
当点击使用 `RejectRole ` 或 `NoRole ` 定义的按钮时,会触发此信号。
注意: 相应的处理程序 是onRejected 。
另请参阅 accepted()、helpRequested() 和clicked()。
[since QtQuick.Controls 2.3 (Qt 5.10)] reset()
当点击使用ResetRole 定义的按钮时,会触发此信号。
注意: 相应的处理函数 是onReset 。
该信号在 QtQuick.Controls 2.3(Qt 5.10)中引入。
方法文档
AbstractButton standardButton(StandardButton button)
返回指定的标准button ,如果不存在,则返回null 。
另请参阅 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.