Qt Quick - Dialog

一、概述

对话框是一种弹出式对话框,主要用于短期任务和与用户的简短交流。与ApplicationWindow和Page类似,Dialog被组织成三个部分:header、contenttem和footer。

在这里插入图片描述

二、对话框标题和按钮

对话框的标题由样式特定的标题栏显示,该标题栏默认被指定为对话框标题。
对话框的标准按钮是由DialogButtonBox管理的,默认情况下,它被指定为对话框页脚。对话框的standardButtons属性会被转发给按钮框的相应属性。此外,按钮框的accepted()和rejected()信号与对话框中的相应信号相连。打开这个对话框就是用 open()函数就好啦

    Button{
    
    
        x: 270
        y: 184
        text: "点击";
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.verticalCenter: parent.verticalCenter

        onClicked: {
    
    
            dialog.open()
        }
    }

  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
  }

五、standardButtons 属性

这个属性包含对话框使用的标准按钮的组合。

  Dialog {
    
    
      id: dialog
      title: "Title"
      standardButtons: Dialog.Ok | Dialog.Cancel

      onAccepted: console.log("Ok clicked")
      onRejected: console.log("Cancel clicked")
  }

按钮将根据用户的系统平台以适当的顺序放置。

标志 含义
Dialog.Ok 用AcceptRole定义的“OK”按钮。
Dialog.Open 用AcceptRole定义的“打开”按钮。
Dialog.Save 用AcceptRole定义的“保存”按钮。
Dialog.Cancel 用RejectRole定义的“Cancel”按钮。
Dialog.Close 用RejectRole定义的“关闭”按钮。
Dialog.Discard 由DestructiveRole定义的“废弃”或“不保存”按钮,取决于平台。
Dialog.Apply 由ApplyRole定义的“应用”按钮。
Dialog.Reset 用ResetRole定义的“重置”按钮。
Dialog.RestoreDefaults 使用ResetRole定义的“恢复默认值”按钮。
Dialog.Help 用HelpRole定义的“帮助”按钮。
Dialog.SaveAll 用AcceptRole定义的“Save All”按钮。
Dialog.Yes 用YesRole定义的“Yes”按钮。
Dialog.YesToAll 用YesRole定义的“Yes to All”按钮。
Dialog.No NoRole定义的“No”按钮。
Dialog.NoToAll NoRole定义的“不接受所有”按钮。
Dialog.Abort 用RejectRole定义的“Abort”按钮。
Dialog.Retry 用AcceptRole定义的“重试”按钮。
Dialog.Ignore 用AcceptRole定义的“Ignore”按钮。
Dialog.NoButton 无效的按钮。

这个不同的 Role 也会对应于不同的角色。就是在不同的按钮点击的时候会发射不同的信号,我们就可以根据不同的信号去写不同的处理函数

角色 信号
AcceptRole, YesRole accepted()
ApplyRole applied()
DiscardRole discarded()
HelpRole helpRequested()
RejectRole, NoRole rejected()
ResetRole reset()

猜你喜欢

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