QML控件--DialogButtonBox

news/2025/2/19 11:18:37/

文章目录

  • 一、控件基本信息
  • 二、控件使用
  • 三、属性成员
  • 四、附加属性成员
  • 五、成员函数
  • 六、信号

一、控件基本信息

Import Statement:import QtQuick.Controls 2.14
Since:Qt 5.8
Inherits:Container


二、控件使用

DialogButtonBox:是一个按钮容器
对话框和消息框通常以符合该平台的界面指南的顺序显示按钮,不同的平台总是有不同顺序的对话按钮,DialogButtonBox 允许开发人员向其中添加按钮,并且会自动为用户平台使用适当的顺序

在这里插入图片描述

import QtQuick 2.10
import QtQuick.Window 2.10
import QtQuick.Controls 2.3ApplicationWindow{visible: true;width: 1280;height: 720;Row{DialogButtonBox {	//指定标准按钮standardButtons: DialogButtonBox.Ok | DialogButtonBox.CancelonAccepted: console.log("Ok clicked")onRejected: console.log("Cancel clicked")}DialogButtonBox {	//手动指定按钮及其角色Button {text: qsTr("Close")DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole}Button {text: qsTr("Save")DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole}}}}

当在按钮框中单击按钮时,会为实际按下的按钮发出 clicked() 信号。 此外,当按下具有相应角色的按钮时,会自动发出以下信号:

  • AcceptRole、YesRole:accepted()
  • ApplyRole:applied()
  • DiscardRole:discarded()
  • HelpRole:helpRequested()
  • RejectRole、NoRole:rejected()
  • ResetRole:reset()

三、属性成员

1、alignment : flags 按钮的对齐方式

  • undefined:按钮被调整大小以填充可用空间;
  • Qt.AlignLeft:左对齐;
  • Qt.AlignRight:右对齐;
  • Qt.AlignTop:顶部对齐;
  • Qt.AlignBottom:底部对齐;
  • Qt.AlignHCenter:水平居中;
  • Qt.AlignVCenter:垂直居中

2、buttonLayout : enumeration 在排列按钮框中包含的按钮时要使用的按钮布局策略。默认值是特定于平台的

  • DialogButtonBox.WinLayout:使用适用于 Windows 应用程序的策略;
  • DialogButtonBox.MacLayout:使用适用于 macOS 上的应用程序的策略;
  • DialogButtonBox.KdeLayout:使用适合 KDE 应用程序的策略;
  • DialogButtonBox.GnomeLayout:使用适用于 GNOME 上的应用程序的策略;
  • DialogButtonBox.AndroidLayout:使用适用于 Android 上的应用程序的策略;

3、delegate : Component 用于创建标准按钮的委托

4、position : enumeration 按钮框的位置
如果按钮框被指定为 ApplicationWindow 或 Page 的页眉或页脚,则会自动设置相应的位置

  • DialogButtonBox.Header:按钮框位于顶部;
  • DialogButtonBox.Footer:按钮框位于底部。默认值;

5、standardButtons : enumeration
按钮框使用的标准按钮的组合。这些按钮将按照用户平台的适当顺序放置。

DialogButtonBox {standardButtons: DialogButtonBox.Ok | DialogButtonBox.CancelonAccepted: console.log("Ok clicked")onRejected: console.log("Cancel clicked")
}
  • DialogBu​​ttonBox.Ok :使用 AcceptRole 定义的“确定”按钮;
  • DialogBu​​ttonBox.Open:使用 AcceptRole 定义的“打开”按钮;
  • DialogBu​​ttonBox.Save:使用 AcceptRole 定义的“保存”按钮;
  • DialogBu​​ttonBox.SaveAll:使用 AcceptRole 定义的“全部保存”按钮;
  • DialogBu​​ttonBox.Retry:使用 AcceptRole 定义的“重试”按钮;
  • DialogBu​​ttonBox.Ignore:使用 AcceptRole 定义的“忽略”按钮;
  • DialogBu​​ttonBox.Cancel:使用 RejectRole 定义的“取消”按钮;
  • DialogBu​​ttonBox.Close:使用 RejectRole 定义的“关闭”按钮;
  • DialogBu​​ttonBox.Abort:使用 RejectRole 定义的“中止”按钮;
  • DialogBu​​ttonBox.Discard:“放弃”或“不保存”按钮,取决于平台,使用 DestructiveRole 定义;
  • DialogBu​​ttonBox.Apply:使用 ApplyRole 定义的“应用”按钮;
  • DialogBu​​ttonBox.Reset:使用 ResetRole 定义的“重置”按钮;
  • DialogBu​​ttonBox.RestoreDefaults:使用 ResetRole 定义的“恢复默认值”按钮;
  • DialogBu​​ttonBox.Help:使用 HelpRole 定义的“帮助”按钮;
  • DialogBu​​ttonBox.Yes:使用 YesRole 定义的“是”按钮;
  • DialogBu​​ttonBox.YesToAll:使用 YesRole 定义的“全部同意”按钮;
  • DialogBu​​ttonBox.No:使用 NoRole 定义的“否”按钮;
  • DialogBu​​ttonBox.NoToAll:使用 NoRole 定义的“拒绝所有”按钮;
  • DialogBu​​ttonBox.NoButton:无效按钮;

四、附加属性成员

1、[read-only] buttonBox : DialogButtonBox
管理此按钮的按钮框,如果该按钮不在按钮框中,则为 null

2、buttonRole : enumeration
持有按钮框中每个按钮的角色

DialogButtonBox {Button {text: qsTr("Save")DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole}Button {text: qsTr("Close")DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole}
}
  • DialogButtonBox.InvalidRole:按钮无效;
  • DialogButtonBox.AcceptRole:接受;
  • DialogButtonBox.RejectRole:取消;
  • DialogButtonBox.DestructiveRole:取消更改;
  • DialogButtonBox.ActionRole:单击按钮会导致对话框中的元素发生变化;
  • DialogButtonBox.HelpRole:请求帮助;
  • DialogButtonBox.YesRole:“是”按钮;
  • DialogButtonBox.NoRole:“否”的按钮;
  • DialogButtonBox.ResetRole:该按钮将对话框的字段重置为默认值;
  • DialogButtonBox.ApplyRole:应用当前更改;

五、成员函数

成员函数说明
AbstractButton standardButton(button)返回指定的标准按钮,如果不存在则返回 null

六、信号

成员函数说明
AbstractButton standardButton(AbstractButton button)当单击按钮框内的按钮时发出此信号

http://www.ppmy.cn/news/42555.html

相关文章

Linux 网络编程 认知负荷与Epoll:高性能I-O多路复用的实现与优化

认知负荷与Epoll:提升网络编程的思维效率引言 (Introduction)1.1 I/O多路复用的背景与需求 (Background and demand for I/O multiplexing)1.2 epoll的概念及其在Linux系统中的重要性 (Concept of epoll and its importance in Linux system)I/O多路复用技术对比 (C…

4月9日第壹简报,星期日,农历闰二月十九

4月9日第壹简报,星期日,农历闰二月十九坚持阅读,静待花开1. “2023中国品牌女性500强”榜单揭晓,屠呦呦、张桂梅、董明珠、刘洋、孟晚舟、谷爱凌等入选。2. 京东集团副总裁:将在今年发布“京东版”ChatGPT。3. 以冒名顶…

Linux网络编程(四)——UDP通信

目录 0x01 UDP协议 一、UDP通信简介以及接口 二、UDP的接口 三、UDP收发例程 0x02 广播 一、设置广播数据函数接口 二、广播代码实现 0x03 组播(多播) 一、组播地址 二、设置组播函数接口 三、代码实现 0x01 UDP协议 一、UDP通信简介以及接口…

Web自动化测试-【Selenium环境部署Edge】

Selenium Web自动化测试工具 之前写过一篇关于自动化测试的博客,里面是有的chrome驱动,由于不适配缘故,更新以下Edge驱动。 自动化测试 Selenium环境部署 准备 Edge 浏览器准备 Edge 驱动包 a .查看自己的Edge浏览器版本(浏览器版…

232:vue+openlayers选择左右两部分的地图,不重复,横向卷帘

第232个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers项目中自定义js实现横向卷帘。这个示例中从左右两个选择框中来选择不同的地图,做了不重复的处理,即同一个数组,两部分根据选择后的状态做disabled处理,避免重复选择。 直接复制下面的 vue+openlayers…

【模型复现】densenet,增加残差结构连接,复用特征图的角度降低了计算量还提升了精度,transition_block压缩特征图

相比ResNet,DenseNet[1608.06993] Densely Connected Convolutional Networks (arxiv.org)提出了一个更激进的密集连接机制:即互相连接所有的层,具体来说就是每个层都会接受其前面所有层作为其额外的输入。下图为DenseNet的密集连接机制。可以…

Vue学习——【第五弹】

前言 上一篇文章 Vue学习——【第四弹】 中学到了数据代理,这篇文章接着学习 Vue中的事件处理。 事件处理 我们在学习JavaScript时就经常接触事件处理,比如在进行表单、按钮、列表折叠等操作时,我们就经常用到 click(点击&…

【SSM】Spring6(十一.Spring对事务支持)

文章目录1.引入事务场景1.1准备数据库1.2 创建包结构1.3 创建POJO类1.4 编写持久层1.5 编写业务层1.6 Spring配置文件1.7 表示层(测试)1.8 模拟异常2.Spring对事务的支持2.1 spring事务管理API2.2 spring事务之注解方式2.3 事务的属性2.4 事务的传播行为…