Qt Quick - MessageDialog 消息提示框

一、概述

MessageDialog 最基本的用例是弹出警告框。它还允许用户根据启用的按钮以各种方式进行响应。对话框最初是不可见的。你需要首先按需设置属性,然后将visible设置为true或调用open()。

根据对话框有哪些标准按钮以及每个按钮的ButtonRole,可能有几种处理程序。例如,当用户按下Cancel、Close或Abort按钮时,onRejected处理程序将被调用。

对于其父窗口,MessageDialog窗口是自动临时的。因此,无论您在项目中还是在窗口中声明对话框,对话框都将显示在包含项目的窗口或您声明的窗口的中央。

如果可能的话,MessageDialog的实现将是一个平台消息对话框。如果这失败了,那么它将尝试实例化一个QMessageBox。如果这也失败了,那么它将退回到QML实现,defaultmessagdialog . QML。

在这种情况下,您可以通过编辑此文件来定制外观。DefaultMessageDialog。qml包含一个矩形来保存对话框的内容,因为某些嵌入式系统不支持多个顶级窗口。当对话框变得可见时,如果可能的话,它将自动包装在一个窗口中,如果只能有一个窗口,则简单地在主窗口的顶部重新添加父元素。

二、使用

1. 例子一

下面是一个在用户响应后显示错误的最小示例:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.5
import QtQuick.Dialogs 1.3

Window {
    
    
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button {
    
    
        id: button1
        x: 270
        y: 335
        text: qsTr("打开消息对话框")

        onClicked: {
    
    
            messageDialog.open();
        }

        MessageDialog {
    
    
            id: messageDialog
            title: "标题"
            icon: StandardIcon.Critical
            text: "文本内容"
            
            
            onAccepted: {
    
    
                console.log("And of course you could only agree.")
            }
        }
    }
}

在这里插入图片描述

2. 例子二

MessageDialog {
    
    
      title: "Overwrite?"
      icon: StandardIcon.Question
      text: "file.txt already exists.  Replace?"
      detailedText: "To replace a file means that its existing contents will be lost. " +
          "The file that you are copying now will be copied over it instead."
      standardButtons: StandardButton.Yes | StandardButton.YesToAll |
          StandardButton.No | StandardButton.NoToAll | StandardButton.Abort
      Component.onCompleted: visible = true
      onYes: console.log("copied")
      onNo: console.log("didn't copy")
      onRejected: console.log("aborted")
  }

在这里插入图片描述

三、常用属性

icon : QQuickStandardIcon::Icon

  • 图标
图标 功能
no icon StandardIcon.NoIcon 为一个无修饰的文本警告。
在这里插入图片描述 StandardIcon.Question 用于在正常操作过程中提问。
在这里插入图片描述 StandardIcon.Information 用于上报正常操作信息。
在这里插入图片描述 StandardIcon.Warning 用于报告非关键错误。
 StandardIcon.Critical 报告严重错误。

standardButtons : StandardButtons

  • 这个就是配置按钮之类的,这个可以参考 Dialog l里面的用法,里面的函数和信号和这个是一样的

猜你喜欢

转载自blog.csdn.net/qq_43680827/article/details/130171609