MessageDialog QML 类型
本地消息对话框。 更多信息...
导入语句 | import Qt.labs.platform |
继承 |
属性
- buttons : flags
- detailedText : string
- informativeText : string
- text : string
信号
- abortClicked()
- applyClicked()
- cancelClicked()
- clicked(button)
- closeClicked()
- discardClicked()
- helpClicked()
- ignoreClicked()
- noClicked()
- noToAllClicked()
- okClicked()
- openClicked()
- resetClicked()
- restoreDefaultsClicked()
- retryClicked()
- saveAllClicked()
- saveClicked()
- yesClicked()
- yesToAllClicked()
详细描述
MessageDialog 类型提供了原生平台消息对话框的 QML API。
消息对话框用于通知用户或向用户提问。消息对话框显示主要 文本 以提醒用户某种情况,显示 说明性文本 以进一步解释警报或向用户提问,以及可选的 详细文本 以在用户请求时提供更多数据。消息框还可以显示一组可配置的 按钮 以接受用户响应。
要显示消息对话框,构建一个 MessageDialog 实例,设置所需的属性,然后调用 open 方法。
MessageDialog { buttons: MessageDialog.Ok text: "The document has been modified." }
用户必须点击 OK 按钮以关闭消息对话框。模态消息对话框会在消息被关闭之前阻止 GUI 的其余部分。
比仅仅通知用户事件更复杂的方法是询问用户如何处理事件。将问题存储在 说明性文本 属性中,并指定 按钮 属性为希望作为用户响应集合的按钮集合。按钮通过使用按位或运算符组合值来指定。按钮的显示顺序取决于平台。
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平台模块在平台没有提供原生实现的平台上使用Qt Widgets作为后备方案。因此,使用Qt Labs平台模块的类型的应用程序应链接到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模块中的类型在未来的版本中不保证保持兼容性。
属性文档
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 : string |
该属性包含要在消息对话框上显示的文本。
信号文档
abortClicked() |
当单击中止时,将发出此信号。
注意:对应的处理程序是 onAbortClicked
。
applyClicked() |
当单击应用时,将发出此信号。
注意:对应的处理程序是 onApplyClicked
。
cancelClicked() |
当单击取消时,将发出此信号。
注意:对应的处理程序是 onCancelClicked
。
clicked(button) |
closeClicked() |
当单击关闭时,将发出此信号。
注意:对应的处理程序是 onCloseClicked
。
discardClicked() |
当单击放弃时,将发出此信号。
注意:对应的处理程序是 onDiscardClicked
。
helpClicked() |
当单击帮助时,将发出此信号。
注意:对应的处理程序是 onHelpClicked
。
ignoreClicked() |
当单击忽略时,将发出此信号。
注意:对应的处理程序是 onIgnoreClicked
。
noClicked() |
当单击否时,将发出此信号。
注意:对应的处理程序是 onNoClicked
。
noToAllClicked() |
当单击全部否决时,将发出此信号。
注意:对应的处理程序是 onNoToAllClicked
。
okClicked() |
当单击确定时,将发出此信号。
注意:对应的处理程序是 onOkClicked
。
openClicked() |
当单击打开时,将发出此信号。
注意:对应的处理程序是 onOpenClicked
。
resetClicked() |
当单击重置时,将发出此信号。
注意:对应的处理程序是 onResetClicked
。
restoreDefaultsClicked() |
当单击恢复默认值时,将发出此信号。
注意:对应的处理程序是 onRestoreDefaultsClicked
。
retryClicked() |
当单击重试时,将发出此信号。
注意:对应的处理程序是 onRetryClicked
。
saveAllClicked() |
当单击全部保存时,将发出此信号。
注意:对应的处理程序是 onSaveAllClicked
。
saveClicked() |
当单击保存时,将发出此信号。
注意:对应的处理程序是 onSaveClicked
。
yesClicked() |
当单击是时,将发出此信号。
注意:对应的处理程序是 onYesClicked
。
yesToAllClicked() |
当单击全部是时,将发出此信号。
注意:对应的处理程序是 onYesToAllClicked
。
© 2024 Qt公司有限。包含在此处的文档贡献的版权属于其各自的所有者。在此提供的文档是根据自由软件基金会发布的GNU自由文档许可协议第1.3版条款授权的。Qt及其相关商标是芬兰Qt公司及其在全世界其他国家的商标。所有其他商标均为其各自所有者的财产。