本页内容

Dialog QML Type

带有标准按钮和标题的弹出对话框,用于与用户进行短暂交互。更多...

Import Statement: import QtQuick.Controls
Inherits:

Popup

属性

信号

方法

  • 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 和弹出控件。

属性文档

此属性用于存储对话框页脚项。页脚项位于对话框底部,其宽度将调整为与对话框宽度相同。默认值为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

此属性用于存储对话框标题。

该标题显示在对话框的标题栏中。

Dialog {
    title: qsTr("About")

    Label {
        text: "Lorem ipsum..."
    }
}

信号文档

accepted()

当对话框通过交互方式或调用accept()被接受时,会发出此信号。

注意: 当使用close()关闭对话框,或将visible 设置为false 时,不会发出此 信号。

注意:使用 onAccepted() 关闭对话框或将 设置为 时,不会发出此信号 。

另请参阅 rejected()。

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

当点击Dialog.Apply 标准按钮时,会触发此信号。

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

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

另请参阅 discarded() 和reset()。

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

当点击“Dialog.Discard ”标准按钮时,会触发此信号。

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

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

另请参阅 reset() 和applied()。

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

当点击Dialog.Help 标准按钮时,会触发此信号。

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

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

另请参阅 accepted() 和rejected()。

rejected()

当对话框被交互式关闭或通过调用reject()关闭时,会发出此信号。

注意: 使用close()关闭对话框,或将visible 设置为false 时,不会发出此 信号。

注意: 当使用onRejected()关闭对话框,或将 设置为 时,不会发出此 信号。

另请参阅 accepted()。

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

当点击Dialog.Reset 标准按钮时,会触发此信号。

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

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

另请参阅 discarded() 和applied()。

方法文档

void accept()

发出accepted()信号并关闭对话框。

另请参阅 reject() 和done()。

[since QtQuick.Controls 2.3 (Qt 5.10)] void done(int result)

  1. 设置result 。
  2. 根据结果是Dialog.Accepted 还是Dialog.Rejected ,分别发出accepted()或rejected()。
  3. 发出closed()。

该方法在 QtQuick.Controls 2.3(Qt 5.10)中引入。

另请参阅 accept()、reject() 以及result 。

void reject()

发出rejected()信号并关闭对话框。

另请参阅 accept() 和done()。

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