Dialog QML Type
带有标准按钮和标题的弹出对话框,用于与用户进行短暂交互。更多...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
属性
- footer : Item
- header : Item
- implicitFooterHeight : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - implicitFooterWidth : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - implicitHeaderHeight : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - implicitHeaderWidth : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - result : int
(since QtQuick.Controls 2.3 (Qt 5.10)) - standardButtons : enumeration
- title : string
信号
- accepted()
- applied()
(since QtQuick.Controls 2.3 (Qt 5.10)) - discarded()
(since QtQuick.Controls 2.3 (Qt 5.10)) - helpRequested()
(since QtQuick.Controls 2.3 (Qt 5.10)) - rejected()
- reset()
(since QtQuick.Controls 2.3 (Qt 5.10))
方法
- void accept()
- void done(int result)
(since QtQuick.Controls 2.3 (Qt 5.10)) - void reject()
- AbstractButton standardButton(StandardButton button)
(since QtQuick.Controls 2.3 (Qt 5.10))
详细说明
对话框是一种弹出窗口,主要用于短期任务以及与用户的简短交互。与ApplicationWindow 和Page 类似,Dialog分为三个部分:header 、contentItem 和footer 。

padding 属性仅影响 contentItem。使用spacing 属性可调整页眉、contentItem 和页脚之间的间距。
默认情况下,对话框具有focus 属性。
对话框标题和按钮
对话框的title 会通过一个具有特定样式的标题栏显示,该标题栏默认被设为对话框的header 。
对话框的标准按钮由DialogButtonBox 管理,该对象默认被分配为对话框的footer 。对话框的standardButtons 属性会被转发至按钮框的相应属性。此外,按钮框的accepted()和rejected()信号会连接到Dialog中的相应信号。
Dialog {
id: dialog
title: "Title"
standardButtons: Dialog.Ok | Dialog.Cancel
onAccepted: console.log("Ok clicked")
onRejected: console.log("Cancel clicked")
}模态对话框
模态对话框(modal )会阻止用户对对话框下方其他内容的输入。当模态对话框打开时,用户必须先完成与该对话框的交互并将其关闭,才能访问同一窗口中的其他内容。
Dialog {
id: dialog
modal: true
standardButtons: Dialog.Ok
}非模态对话框
非模态对话框是一种独立于周围其他内容运行的对话框。当非模态对话框打开时,用户可以同时与该对话框以及同一窗口中的其他内容进行交互。
Dialog {
id: dialog
modal: false
standardButtons: Dialog.Ok
}另请参阅 DialogButtonBox 和弹出控件。
属性文档
footer : Item
此属性用于存储对话框页脚项。页脚项位于对话框底部,其宽度将调整为与对话框宽度相同。默认值为null 。
注意:将 DialogButtonBox 作为对话框页脚时 ,其accepted()和rejected()信号会自动连接到Dialog中的相应信号。
注意:将 DialogButtonBox 、ToolBar 或TabBar 指定为 对话框页脚时,会自动将相应的DialogButtonBox::position 、ToolBar::position 或TabBar::position 属性设置为Footer 。
另请参阅 header 。
header : Item
该属性用于存储对话框标题项。标题项位于顶部,其宽度会调整为与对话框宽度一致。默认值为null 。
注意:将 DialogButtonBox 作为对话框标题时 ,其accepted()和rejected()信号会自动连接到Dialog中的相应信号。
注意:将 DialogButtonBox 、ToolBar 或TabBar 指定为 对话框标题时 ,会自动将相应的DialogButtonBox::position 、ToolBar::position 或TabBar::position 属性设置为Header 。
另请参阅 footer 。
implicitFooterHeight : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]
该属性存储隐式页脚的高度。
其值等于footer && footer.visible ? footer.implicitHeight : 0 。
该属性在 QtQuick.Controls 2.5(Qt 5.12)中引入。
另请参阅 implicitFooterWidth 和implicitHeaderHeight 。
implicitFooterWidth : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]
该属性存储隐式页脚的宽度。
其值等于footer && footer.visible ? footer.implicitWidth : 0 。
该属性在 QtQuick.Controls 2.5(Qt 5.12)中引入。
另请参阅 implicitFooterHeight 和implicitHeaderWidth 。
implicitHeaderHeight : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]
该属性存储隐式页眉的高度。
其值等于header && header.visible ? header.implicitHeight : 0 。
该属性在 QtQuick.Controls 2.5(Qt 5.12)中引入。
另请参阅 implicitHeaderWidth 和implicitFooterHeight 。
implicitHeaderWidth : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]
该属性存储隐式标题的宽度。
其值等于header && header.visible ? header.implicitWidth : 0 。
该属性在 QtQuick.Controls 2.5(Qt 5.12)中引入。
另请参阅 implicitHeaderHeight 和implicitFooterWidth 。
result : int [since QtQuick.Controls 2.3 (Qt 5.10)]
该属性存储结果代码。
标准结果代码:
| 常量 | 描述 |
|---|---|
Dialog.Accepted | 对话框已被接受。 |
Dialog.Rejected | 对话框被拒绝。 |
该属性首次引入于 QtQuick.Controls 2.3(Qt 5.10)。
另请参阅 accept()、reject() 和done()。
standardButtons : enumeration
该属性包含对话框中使用的标准按钮组合。
Dialog {
id: dialog
title: "Title"
standardButtons: Dialog.Ok | Dialog.Cancel
onAccepted: console.log("Ok clicked")
onRejected: console.log("Cancel clicked")
}这些按钮将根据用户的平台以适当的顺序排列。
可能的标志:
| 常量 | 描述 |
|---|---|
Dialog.Ok | 使用AcceptRole 定义的“确定”按钮。 |
Dialog.Open | 使用AcceptRole 定义的“打开”按钮。 |
Dialog.Save | 使用AcceptRole 定义的“保存”按钮。 |
Dialog.Cancel | 使用RejectRole 定义的“取消”按钮。 |
Dialog.Close | 使用RejectRole 定义的“关闭”按钮。 |
Dialog.Discard | 一个“放弃”或“不保存”按钮(具体名称取决于平台),由DestructiveRole 定义。 |
Dialog.Apply | 使用ApplyRole 定义的“应用”按钮。 |
Dialog.Reset | 使用ResetRole 定义的“重置”按钮。 |
Dialog.RestoreDefaults | 使用ResetRole 定义的“恢复默认设置”按钮。 |
Dialog.Help | 使用HelpRole 定义的“帮助”按钮。 |
Dialog.SaveAll | 使用AcceptRole 定义的“全部保存”按钮。 |
Dialog.Yes | 使用YesRole 定义的“是”按钮。 |
Dialog.YesToAll | 使用YesRole 定义的“全部是”按钮。 |
Dialog.No | 使用NoRole 定义的“否”按钮。 |
Dialog.NoToAll | 使用NoRole 定义的“全部否”按钮。 |
Dialog.Abort | 使用RejectRole 定义的“中止”按钮。 |
Dialog.Retry | 使用AcceptRole 定义的“重试”按钮。 |
Dialog.Ignore | 使用AcceptRole 定义的“忽略”按钮。 |
Dialog.NoButton | 一个无效的按钮。 |
另请参阅 DialogButtonBox 。
title : string
此属性用于存储对话框标题。
该标题显示在对话框的标题栏中。
信号文档
accepted()
当对话框通过交互方式或调用accept()被接受时,会发出此信号。
注意:使用 onAccepted() 关闭对话框或将 设置为 时,不会发出此信号 。
另请参阅 rejected()。
[since QtQuick.Controls 2.3 (Qt 5.10)] applied()
当点击Dialog.Apply 标准按钮时,会触发此信号。
注意: 相应的处理程序 是onApplied 。
该信号在 QtQuick.Controls 2.3(Qt 5.10)中引入。
[since QtQuick.Controls 2.3 (Qt 5.10)] discarded()
当点击“Dialog.Discard ”标准按钮时,会触发此信号。
注意: 相应的处理程序 是onDiscarded 。
该信号在 QtQuick.Controls 2.3(Qt 5.10)中引入。
[since QtQuick.Controls 2.3 (Qt 5.10)] helpRequested()
当点击Dialog.Help 标准按钮时,会触发此信号。
注意: 相应的处理程序 是onHelpRequested 。
该信号在 QtQuick.Controls 2.3(Qt 5.10)中引入。
rejected()
当对话框被交互式关闭或通过调用reject()关闭时,会发出此信号。
注意: 当使用onRejected()关闭对话框,或将 设置为 时,不会发出此 信号。
另请参阅 accepted()。
[since QtQuick.Controls 2.3 (Qt 5.10)] reset()
当点击Dialog.Reset 标准按钮时,会触发此信号。
注意: 相应的处理程序 是onReset 。
该信号在 QtQuick.Controls 2.3(Qt 5.10)中引入。
方法文档
void accept()
发出accepted()信号并关闭对话框。
[since QtQuick.Controls 2.3 (Qt 5.10)] void done(int result)
该方法在 QtQuick.Controls 2.3(Qt 5.10)中引入。
另请参阅 accept()、reject() 以及result 。
void reject()
发出rejected()信号并关闭对话框。
[since QtQuick.Controls 2.3 (Qt 5.10)] AbstractButton standardButton(StandardButton button)
返回指定的标准button ,如果不存在则返回null 。
该方法自 QtQuick.Controls 2.3(Qt 5.10)起引入。
另请参阅 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.