本页内容

MessageDialog QML Type

原生消息对话框。更多...

Import Statement: import Qt.labs.platform
Inherits:

Dialog

Status: Deprecated since 6.9

自 Qt Labs Platform 6.9 起,此类型已弃用。我们强烈建议不要在新代码中使用它。

属性

信号

详细说明

请改用 `QtQuick.Dialogs MessageDialog `。

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()
}

一个原生信息提示对话框

clicked() 信号会传递哪个按钮被点击的信息。

目前,以下平台支持原生平台消息对话框:

  • Android
  • iOS
  • macOS

在没有原生实现的平台上,Qt Labs Platform 模块会使用Qt Widgets 作为备用方案。因此,使用Qt Labs Platform 模块中类型的应用程序应链接到QtWidgets ,并使用QApplication 代替QGuiApplication 。

要链接到QtWidgets 库,请在您的 qmake 项目文件中添加以下内容:

QT += widgets

在 `main()` 中创建 `QApplication ` 的实例:

#include <QApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

注意: Qt.labs 模块中的类型在未来版本中不保证保持兼容。

另请参阅 QtQuick.Dialogs::MessageDialog 。

属性文档

buttons : flags

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

可能的标志:

常量描述
MessageDialog.Ok使用AcceptRole 定义的“确定”按钮。
MessageDialog.Open使用AcceptRole 定义的“打开”按钮。
MessageDialog.Save使用AcceptRole 定义的“保存”按钮。
MessageDialog.Cancel使用RejectRole 定义的“取消”按钮。
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该对话框没有按钮。

另请参阅 clicked()。

detailedText : string

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

另请参阅 text 和informativeText 。

informativeText : string

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

说明性文本可用于补充“text ”中的内容,向用户提供更多信息。

另请参阅“ text ”和“detailedText ”。

text : string

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

另请参阅 informativeText 和detailedText 。

Signal 文档

abortClicked()

点击Abort 时会触发此信号。

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

applyClicked()

点击Apply 时会触发此信号。

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

cancelClicked()

点击Cancel 时会触发此信号。

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

clicked(button)

当点击对话框button 时,会触发此信号。

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

另请参阅 buttons 。

closeClicked()

点击Close 时会触发此信号。

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

discardClicked()

点击Discard 时会触发此信号。

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

helpClicked()

点击Help 时会触发此信号。

注意: 对应的处理程序 是onHelpClicked 。

ignoreClicked()

点击Ignore 时会触发此信号。

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

noClicked()

点击No 时会触发此信号。

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

noToAllClicked()

点击No To All 时会触发此信号。

注意: 相应的处理程序 为onNoToAllClicked 。

okClicked()

点击Ok 时会触发此信号。

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

openClicked()

点击Open 时会触发此信号。

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

resetClicked()

点击Reset 时会触发此信号。

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

restoreDefaultsClicked()

点击Restore Defaults 时会触发此信号。

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

retryClicked()

点击Retry 时会触发此信号。

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

saveAllClicked()

点击Save All 时会触发此信号。

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

saveClicked()

点击Save 时会触发此信号。

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

yesClicked()

当点击Yes 时,会触发此信号。

注意: 对应的处理程序 是onYesClicked 。

yesToAllClicked()

点击Yes To All 时会触发此信号。

注意: 相应的处理程序 为onYesToAllClicked 。

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