Dialog使用总结
- 一、概述
- 二、对话框标题和按钮
- 三、模态对话框
- 四、非模态的对话框
- 五、standardButtons 属性
一、概述
对话框是一种弹出式对话框,主要用于短期任务和与用户的简短交流。与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() |