如何选网站建设公司/推广论坛有哪些
Qt控件之QMessageBox
- 描述
- 基于属性的API
- 富文本和文本格式属性
- 严重程度以及图标和Pixmap属性
- 静态函数API
- 高级用法
- 默认按钮和退出按钮
- 示例
- 使用场景
描述
QMessageBox
类提供了一个模态对话框,用于通知用户或向用户提问并接收答案。
消息框显示一个主要文本以提醒用户注意某个情况,显示一个信息性文本以进一步解释该提醒或向用户提问,显示一个可选的详细文本以在用户请求时提供更多数据。
消息框还可以显示一个图标和标准按钮以接受用户响应。
提供了两个使用QMessageBox
的API
,基于属性的API
和静态函数
。调用其中一个静态函数是一种更简单的方法,但与使用基于属性的API相比,它的灵活性较差,结果信息量也较少。建议使用基于属性的API
。
基于属性的API
要使用基于属性的API,请构造QMessageBox
的实例,设置所需的属性,然后调用exec()
来显示消息。最简单的配置是仅设置消息文本属性。
QMessageBox msgBox;
msgBox.setText("文档已被修改。");
msgBox.exec();
用户必须单击“确定”按钮才能关闭消息框。在消息框关闭之前,其余的 GUI
会被阻止。
除了提醒用户事件之外,更好的方法是询问用户如何处理该事件。将问题存储在信息文本属性中,并将标准按钮属性设置为希望用户响应的按钮集。按钮是通过使用位或运算符将标准按钮的值组合在一起来指定的。按钮的显示顺序取决于平台。例如,在Windows
上,保存显示在取消的左侧,而在Mac OS
上,顺序相反。
将你的标准按钮之一标记为默认按钮。
QMessageBox msgBox;
msgBox.setText("文档已被修改。");
msgBox.setInformativeText("是否要保存更改?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox. defaultButton(QMessageBox::Save);
int ret = msgBox.exec();
这是macOS
指南中推荐的方法。类似的指南适用于其他平台,但请注意不同平台处理信息文本的不同方式。

exec()
槽返回被点击按钮的 StandardButtons
值。
switch (ret) {case QMessageBox::Save:// Save was clickedbreak;case QMessageBox::Discard:// Don't Save was clickedbreak;case QMessageBox::Cancel:// Cancel was clickedbreak;default:// should never be reachedbreak;}
为了给用户提供更多信息以帮助他回答问题,请设置详细文本属性。如果设置了详细文本属性,则将显示显示详细信息...
按钮。
单击显示详细信息...
按钮显示详细文本。
富文本和文本格式属性
详细的文本属性始终被解释为纯文本。主要文本和信息文本属性可以是纯文本或富文本。这些字符串根据文本格式属性的设置进行解释。默认设置为自动文本。
请注意,对于一些包含XML元字符的纯文本字符串,自动文本富格文本检测测试可能会失败,导致您的纯文本字符串被错误地解释为富格文本。在这些罕见的情况下,使用Qt::convertFromPlainText()
将纯文本字符串转换为视觉上等效的富格文本字符串,或使用 textsFormat()
显式设置文本格式属性。
严重程度以及图标和Pixmap属性
QMessageBox
支持四种预定义的消息严重级别或消息类型,它们的不同之处仅在于各自显示的预定义图标。通过将图标属性设置为预定义图标之一,指定四种预定义消息类型中的一种。以下规则是准则:
预定义图标不是由 QMessageBox
定义的,而是由样式提供的。默认值为无图标。否则,消息框在所有情况下都是相同的。使用标准图标时,请使用表中推荐的图标,或使用您的平台样式指南推荐的图标。如果所有标准图标都不适合您的消息框,则可以通过设置图标 pixmap
属性而不是设置图标属性来使用自定义图标。
总之,要设置图标,可以使用setIcon()
设置标准图标,或使用setIconPixmap()
设置自定义图标。
静态函数API
尽管使用静态函数API构建消息框很方便,但它的灵活性比不上基于属性的API,因为静态函数的签名缺少用于设置信息文本和详细文本属性的参数。解决这个问题的一种办法是将标题参数用作消息框的主要文本,将文本参数用作消息框的信息文本。因为这会使消息框的易读性降低,所以平台指南不建议这样做。Microsoft Windows
用户界面指南建议使用应用程序名称作为窗口的标题,这意味着如果您除了主文本之外还有信息文本,必须将其连接到文本参数中。
请注意,静态函数的签名相对于其按钮参数已经发生了变化,现在这些按钮参数用于设置标准按钮和默认按钮。
静态函数可用于创建information()
, question()
, warning()
,和 critical()
消息框。
int ret = QMessageBox::warning(this, tr("My Application"),tr("The document has been modified.\n""Do you want to save your changes?"),QMessageBox::Save | QMessageBox::Discard| QMessageBox::Cancel,QMessageBox::Save);
标准对话框示例显示了如何使用QMessageBox
和其他内置Qt
对话框。
高级用法
如果标准按钮对于您的消息框不够灵活,您可以使用 addButton()
重载,该重载接受文本
和 ButtonRole
,以添加自定义按钮。 ButtonRole
由 QMessageBox
使用,用于确定屏幕上按钮的顺序(根据平台而有所不同)。您可以在调用 exec()
后测试 clickedButton()
的值。
例如:
QMessageBox msgBox;QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);msgBox.exec();if (msgBox.clickedButton() == connectButton) {// connect} else if (msgBox.clickedButton() == abortButton) {// abort}
默认按钮和退出按钮
默认按钮(即按下回车键时激活的按钮)可以使用setDefaultButton()
方法来指定。如果未指定默认按钮,QMessageBox
会根据消息框中使用的按钮的角色来查找一个默认按钮。
退出按钮(按下Esc键
时激活的按钮)可以使用setEscapeButton()
方法来指定。如果未指定逃逸按钮,QMessageBox
会照以下规则来查找:
如果只有一个按钮,则该按钮为按下Esc键
时激活的按钮。
如果存在一个取消按钮,则该按钮为按下Esc键
时激活的按钮。
如果存在一个拒绝角色或者无角色的按钮,则该按钮为按下Esc键
时激活的按钮。
当无根据上述规则确定退出按钮时,按下Esc键
将没有任何效果。
示例
开发时,如果有两个按钮设置为中文,则右上角的窗口关闭按钮无法使能,以下是解决方案:
QMessageBox msgBox;msgBox.setText("当前显示一个按钮");msgBox.setInformativeText("此行是信息文本");msgBox.addButton("确定", QMessageBox::YesRole);msgBox.addButton("取消", QMessageBox::NoRole);msgBox.exec();// 点击的按钮QAbstractButton* pBtn = msgBox.clickedButton();
使用场景
QMessageBox
的常见使用场景:
-
提示信息:可以通过
QMessageBox
显示一条简单的提示信息,比如告知用户某个操作已经完成或者出错了。 -
警告信息:可以使用
QMessageBox
显示警告信息,警示用户某个操作可能会带来一些风险或者不符合预期。 -
错误信息:当程序出现错误时,可以使用
QMessageBox
显示错误信息,告知用户发生了什么问题以及如何处理。 -
确认对话框:如果需要用户确认一个操作,可以使用
QMessageBox
显示确认对话框,询问用户是否继续。 -
询问对话框:有时候需要从用户那里获取一些简单的选择,比如是否保存修改,可以使用
QMessageBox
显示询问对话框以获取用户的选择。 -
提示输入:可以使用
QMessageBox
和QInputDialog
结合,用于提示用户输入一些简单的文本或者进行选择。
总的来说,QMessageBox
适用于需要向用户显示简单信息或者进行简单交互的场景,例如程序的提示、警告以及一些基本的确认和选择操作。
相关文章:

【Qt控件之QMessageBox】详解
Qt控件之QMessageBox 描述基于属性的API富文本和文本格式属性严重程度以及图标和Pixmap属性静态函数API 高级用法默认按钮和退出按钮示例使用场景 描述 QMessageBox类提供了一个模态对话框,用于通知用户或向用户提问并接收答案。 消息框显示一个主要文本以提醒用户…...

SSH安全登录远程主机
SSH服务器简介 SSH即Security SHell的意思,它可以将连线的封包进行加密技术,之后进行传输,因此相当的安全。 SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。 SSH协定,在预设的状态下,…...

揭秘!产品经理提升效率的秘密武器:10款AI生成PPT工具
AI的爆炸式增长表现令人惊艳,现有的各类AI工具正在重塑各行各业,不同程度地提高人们的工作效率,并有望创造新的职业机会。但是,面对市面上数量众多的AI工具,且每周都会蹦出新的产品,即便是以好奇心富称的产…...

Oracle修改带数据的字段类型
insert into TNW_FUND_SELORG(TFDINFOID,TSOINFOID) select TFD_INFO_ID,TSO_INFO_ID from TFD_SEL_FUNDLINK_TO_OLDFUNDWEB_DB /*修改原字段名*/ ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1; /*添加一个和原字段同名的字段*/ ALTER TABLE 表名 ADD 字段名 VARCHAR…...

WebService接口方式和Restful接口这两者有什么区别和相同点
WebService和RESTful接口都是用于在网络上进行通信和数据交换的技术,但它们在设计和使用上有一些重要的区别和相似之处。 相同点: 基于HTTP协议:无论是WebService还是RESTful接口,它们都是通过HTTP协议进行通信的。 支持多种数据…...

jenkins自动化操作步骤(gitblit)
1、登陆地址: http://xxxxxxxxx.org:xxxx/ admin/xxxx 2、创建任务 选择构建一个maven项目 3、配置 最多只保留一天一个任务 选择git仓库和账号密码 选择代码对应分支 build项: 1)使用父项目的pom文件:k56-boot/pom.xml 2&…...

centos中mongodb设置服务自启动并 允许远程IP访问
安装mongodb参考 注意的是配置文件需要把journal设置为true 制作为系统服务 创建MongoDB服务文件。运行以下命令创建服务文件/etc/systemd/system/mongod.service: vi /etc/systemd/system/mongod.service [Unit] DescriptionMongoDB Database Server Documenta…...

实时定位和配送追踪:开发万岳同城外卖APP的关键技术特性
随着生活节奏的不断加快,外卖服务已经成为许多人日常生活中不可或缺的一部分。无论是工作日的午餐,还是周末的家庭聚会,外卖APP已经成为满足各种美食需求的首选方式。然而,同城外卖APP的成功不仅仅取决于美味的食物选择࿰…...

数据库强化(3.存储过程)
1.什么是存储过程? 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。MySQL 5.0 版本开始支持存储过程。 它是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中&a…...

雅思小作文笔记
mostly from Simon’s methods and techniques remember the task is describe what you see, not give an opinion. Just write a report.no conclusion, just a summary(the overview) Question type 小作文的题目类型大致如上 Simon所述,在描述数字的时候&…...

Java List Set Map
一、List 1.1 ArrayList 1.2 LinkedList 二、Set 2.1 HashSet 2.2 TreeSet 2.3 LinkedHashSet 三、Map 3.1 HashMap 3.2 TreeMap 3.3 LinkedHashMap 四、对比 类型底层结构重复null值场景备注查询删除新增ListArrayList动态数组可允许快速随机访问元素0(1)0(n)尾部增加0&a…...

【数据结构】数组和字符串(十三):链式字符串的基本操作(串长统计、查找、复制、插入、删除、串拼接)
文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作(链式存储)1. 结构体2. 初始化3. 判空4. 串尾添加5. 打印6. 串长统计7. 查找8. 复制9. 插入10. 删除11. 串拼接12. 销毁13. 主函数14. 代码整合 4.3 字符串 字符串(String)是由零个或…...

Python3 获取当前服务器公网 IP 地址
有同学问我如何使用 Python 获取服务器公网的 IP 地址呢?我测试几个发现,方法有很多,好用的就发现一种,即直接使用 Python 自带的 socket 包。 代码示例: # 获取主机 IP dgram socket.socket(socket.AF_INET, socke…...

EAS查前5分钟到现在的组织变动数据
select * from T_ORG_Admin where ( (FCREATETIME between ( sysdate-(1/24/60)*8) and sysdate ) or (FLASTUPDATETIME between ( sysdate-(1/24/60)*8) and sysdate ) ) -- FLASTUPDATETIME < sysdate-(1/24/60)*10 --FNUMBER 110112...

uni-app——如何阻止事件冒泡
引言 在开发移动应用程序时,我们经常需要处理用户交互事件。然而,有时候这些事件会冒泡,导致意外的行为和不良用户体验。在本文中,我们将探讨如何使用UniApp框架来阻止事件冒泡,并提供一些示例代码来帮助您理解如何实…...

[MySQL]索引
目录 概念解释 作用/优点 缺点 适用场景 索引的创建,删除与查看 系统对索引的自动创建 索引建立的时机 索引存储的数据结构 选择B树的原因 B树的原理 查询流程 优点 B树 与B树的区别 优点 概念解释 索引就像是一本字典的目录,我们可以根据目录快速定位到我们想…...

什么是AUTOSAR ComStack,AUTOSAR架构中,CAN通信堆栈CAN Communication Stack介绍
AUTOSAR(Automotive Open System Architecture)ComStack指的是AUTOSAR架构中的通信堆栈。在AUTOSAR体系结构中,ComStack是指用于不同软件组件(如应用软件、基础软件等)之间进行通信的一组协议和服务。 在AUTOSAR架构中…...

黄金期货与黄金现货的区别
黄金期货与黄金现货是有区别的,比如在交易机制方面,黄金期货有具体的交割日,合约到期就必须交割,否则会被强行平仓或以实物进行交割,而在保证金不足时也会被强行平仓;而现货黄金就没有交割限制,…...

【数据结构】数组和字符串(五):特殊矩阵的压缩存储:稀疏矩阵——压缩稀疏行(CSR)
文章目录 4.2.1 矩阵的数组表示4.2.2 特殊矩阵的压缩存储a. 对角矩阵的压缩存储b~c. 三角、对称矩阵的压缩存储d. 稀疏矩阵的压缩存储——三元组表e. 压缩稀疏行(Compressed Sparse Row,CSR)矩阵结构体创建CSR矩阵元素设置初始化打印矩阵销毁…...

springboot整合postgresql
使用docker安装postgres 简单起见,这里用docker来安装postgresql docker pull postgresdocker run --name postgres \-e POSTGRES_PASSWORD123456 \-p 5432:5432 \-v /usr/local/docker/postgresql/data:/var/lib/postgresql/data \-d postgrespostgres客户端 pg…...

C#__委托delegate
委托存储的是函数的引用(把某个函数赋值给一个委托类型的变量,这样的话这个变量就可以当成这个函数来进行使用了) 委托类型跟整型类型、浮点型类型一样,也是一种类型,是一种存储函数引用的类型 using System.Reflec…...

Jupyter Notebook的安装方法以及生成ipykernel
1. 安装Python和pip Jupyter Notebook是基于Python的,因此首先需要在电脑上安装Python和pip。可以通过访问Python官网(Welcome to Python.org)下载安装包进行安装。在安装Python的过程中,会提示是否安装pip,选择安装即可。 2. 安装Jupyter …...

测试员如何快速复现bug?一款合适的视频录制软件了解一下
你是不是还在为描述缺陷复现步骤而苦恼?你是不是还在为寻找一款合适的视屏录制软件而挣扎?那么,你应该好好看看这篇小文章。 作为测试人员,撰写测试用例、提交测试缺陷是基本工作。但往往我们会遇到:开发人员无法根据…...

论文-分布式-并发控制-并发控制问题的解决方案
目录 参考文献 问题 解法与证明 易读版本 参考文献 Dijkstra于1965年发表文章Solution of a Problem in Concurrent Programming Control,引出并发系统下的互斥(mutual exclusion)问题,自此开辟了分布式计算领域Dijkstra在文中给出了基于共享存储原子…...

【网络协议】聊聊http协议
当我们输入www.baidu.com的时候,其实是先将baidu.com的域名进行DNS解析,转换成对应的ip地址,然后开始进行基于TCP构建三次握手的连接,目前使用的是1.1 默认是开启了keep-Alive。可以在多次请求中进行连接复用。 HTTP 请求的构建…...

图神经网络论文笔记(一)——北邮:基于学习解纠缠因果子结构的图神经网络去偏
作者 :范少华 研究方向 :图神经网络 论文标题 :基于学习解纠缠因果子结构的图神经网络去偏 论文链接 :https://arxiv.org/pdf/2209.14107.pdf https://doi.org/10.48550/arXiv.2209.14107 大多数图神经网络(GNNs)通…...

java初始化list的几种方式
在Java中初始化List有以下几种常见的方式: 使用Arrays.asList()静态方法: List<Integer> list1 Arrays.asList(1, 2, 3);使用List接口的实现类ArrayList的构造函数: List<String> list2 new ArrayList<>();使用Collections.singletonList() String obj…...

Linux:文件操作
目录 一、关于文件 1、文件类的系统接口 2、文件的含义 二、文件操作 1、C语言文件相关接口 2、系统接口 open close write read 三、文件描述符 关于fd fd的分配规则 输出重定向示例 输入重定向示例 追加重定向示例 dup2函数 缓冲区 stdout与stderr perror…...

vue源码笔记之——运行时runtime
源码中的位运算 按位于 运算 if (shapeFlag & ShapeFlags.TELEPORT) {解释:如果shapFlag本身值为8,type为1的话,那么转换为二进制(js都是32位)那就是 shapFlag:00000000 00000000 00000000 00001000 …...

MySQL数据库干货_09—— MySQL中的外键约束(Foreign Key)
外键约束(Foreign Key) 添加外键约束 使用DDL语句添加外键约束 ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY( 列 名 ) REFERENCES 参照的表名(参照的列名);示例一: 创建 departments 表包含 department_id 、department_name ,location_id。…...