Qt Quick - Dialog

本文介绍了QtQuick中Dialog组件的使用,包括对话框的基本结构、标题和按钮管理、模态与非模态对话框的创建以及standardButtons属性的详细说明。通过standardButtons属性可以设置不同角色的按钮,每个角色对应特定的用户交互信号,例如accepted()和rejected(),便于实现不同的功能处理。
摘要由CSDN通过智能技术生成

一、概述

对话框是一种弹出式对话框,主要用于短期任务和与用户的简短交流。与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.NoNoRole定义的“No”按钮。
Dialog.NoToAllNoRole定义的“不接受所有”按钮。
Dialog.Abort用RejectRole定义的“Abort”按钮。
Dialog.Retry用AcceptRole定义的“重试”按钮。
Dialog.Ignore用AcceptRole定义的“Ignore”按钮。
Dialog.NoButton无效的按钮。

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

角色信号
AcceptRole, YesRoleaccepted()
ApplyRoleapplied()
DiscardRolediscarded()
HelpRolehelpRequested()
RejectRole, NoRolerejected()
ResetRolereset()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳风暴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值