本页内容

MessageDialog QML Type

一条消息对话框。更多...

Import Statement: import QtQuick.Dialogs
Since: Qt 6.3
Inherits:

Dialog

属性

信号

  • buttonClicked(QPlatformDialogHelper::StandardButton button, QPlatformDialogHelper::ButtonRole role)

详细说明

MessageDialog 类型为消息对话框提供了一个 QML API。

消息对话框向用户显示一些信息,并在用户确认后关闭

消息对话框用于向用户发出通知或向用户提问。 消息对话框会显示一个主text ,用于向用户发出警报;一个informative text ,用于进一步解释警报或向用户提问;以及一个可选的detailed text ,用于在用户请求时提供更多数据。消息框还可以显示一组可配置的buttons ,用于接受用户的响应。

要显示消息对话框,需创建一个 MessageDialog 实例,设置所需的属性,并调用open() 方法。

MessageDialog {
    buttons: MessageDialog.Ok
    text: "The document has been modified."
}

用户必须单击OK 按钮才能关闭消息对话框。

比仅仅向用户发出事件警报更周全的做法是,还应询问用户如何处理该事件。将问题存储在informative text 属性中,并将buttons 属性指定为作为用户响应集的按钮集。通过使用位或运算符组合值来指定这些按钮。

MessageDialog {
    text: "The document has been modified."
    informativeText: "Do you want to save your changes?"
    buttons: MessageDialog.Ok | MessageDialog.Cancel

    onAccepted: document.save()
}

消息对话框允许用户根据消息内容做出选择,并将根据“按钮”属性执行相应的操作

可用性

原生平台消息对话框目前可在以下平台上使用:

  • Android
  • iOS
  • macOS

Qt Quick Dialogs 在没有原生实现的平台上,会使用Qt Quick 实现作为备用方案。

属性文档

buttons : flags

该属性包含消息对话框所使用的按钮组合。默认值为MessageDialog.NoButton 。

可能的标志:

常量描述
MessageDialog.Ok使用AcceptRole 定义的“确定”按钮。
MessageDialog.Open使用AcceptRole 定义的“打开”按钮。
MessageDialog.Save使用AcceptRole 定义的“保存”按钮。
MessageDialog.Cancel使用RejectRole 定义的“Cancel”按钮。
MessageDialog.Close使用RejectRole 定义的“关闭”按钮。
MessageDialog.Discard一个“放弃”或“不保存”按钮(视平台而定),使用DestructiveRole 定义。
MessageDialog.Apply使用ApplyRole 定义的“应用”按钮。
MessageDialog.Reset使用ResetRole 定义的“重置”按钮。
MessageDialog.RestoreDefaults使用ResetRole 定义的“恢复默认值”按钮。
MessageDialog.Help使用HelpRole 定义的“帮助”按钮。
MessageDialog.SaveAll使用AcceptRole 定义的“全部保存”按钮。
MessageDialog.Yes使用YesRole 定义的“是”按钮。
MessageDialog.YesToAll使用YesRole 定义的“全部是”按钮。
MessageDialog.No使用NoRole 定义的“否”按钮。
MessageDialog.NoToAll使用NoRole 定义的“全部否”按钮。
MessageDialog.Abort使用RejectRole 定义的“中止”按钮。
MessageDialog.Retry使用AcceptRole 定义的“重试”按钮。
MessageDialog.Ignore使用AcceptRole 定义的“忽略”按钮。
MessageDialog.NoButton该对话框没有按钮。

另请参阅 buttonClicked()。

detailedText : string

该属性用于存储将在详细信息区域中显示的文本。

另请参阅 text 和informativeText 。

informativeText : string

该属性包含用于对消息进行更详细说明的说明性文本。

说明性文本可用于补充text ,向用户提供更多信息。

另请参阅 text 和detailedText 。

text : string

此属性用于存储要在消息对话框中显示的文本。

另请参阅 informativeText 和detailedText 。

Signal 文档

buttonClicked(QPlatformDialogHelper::StandardButton button, QPlatformDialogHelper::ButtonRole role)

当点击了带有指定role 的button 时,会触发此信号。

通过为该信号设置处理程序,您可以响应任何自定义按钮的点击事件。button 参数指定了被点击的按钮,而role 参数则说明了该按钮的功能角色。

MessageDialog {
    id: dialog
    text: qsTr("The document has been modified.")
    informativeText: qsTr("Do you want to save your changes?")
    buttons: MessageDialog.Ok | MessageDialog.Cancel
    onButtonClicked: function (button, role) {
        switch (button) {
        case MessageDialog.Ok:
            document.save()
            break;
        }
    }
}

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

另请参阅 buttons 。

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