Qt QMessageBox详解

news2024/9/23 7:32:18

文章目录

  • 一.QMessageBox介绍
    • 枚举
    • 属性
    • 函数
  • 二.QMessageBox的用法
    • 1.导入QMessage库
    • 2.弹窗提示
    • 3.提供选项的弹窗提示
    • 4.作为提示,报警,报错提示窗口

一.QMessageBox介绍

文本消息显示框(message box)向用户发出情况警报信息并进一步解释警报或向用户提问,以及可选的详细文本以在用户请求时提供更多数据。

枚举

枚举枚举值
enumButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ActionRole, …, ResetRole }
enumIcon { NoIcon, Question, Information, Warning, Critical }
enumStandardButton { Ok, Open, Save, Cancel, Close, …, ButtonMask }
flagsStandardButtons

属性

属性名称类型
detailedTextQString
standardButtonsStandardButtons
iconIcon
iconPixmapQPixmap
informativeTextQString
textQString
textFormatQt::TextFormat
textInteractionFlagsQt::TextInteractionFlags

函数

返回值函数原型说明
QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = NoButton, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::DialogQt::MSWindowsFixedSizeDialogHint)
QMessageBox(QWidget *parent = nullptr)构造函数
virtual~QMessageBox()析构函数
voidaddButton(QAbstractButton *button, QMessageBox::ButtonRole role)添加按钮到消息框中
QPushButton *addButton(const QString &text, QMessageBox::ButtonRole role)添加按钮到消息框中
QPushButton *addButton(QMessageBox::StandardButton button)添加按钮到消息框中
QAbstractButton *button(QMessageBox::StandardButton which) const返回与标准按钮对应的指针,如果此消息框中不存在标准按钮,则返回nullptr
QMessageBox::ButtonRolebuttonRole(QAbstractButton *button) const返回指定按钮的按钮角色。如果按钮为nullptr或尚未添加到消息框,则此函数返回InvalidRole。
QList<QAbstractButton *>buttons() const返回已添加到消息框中的所有按钮的列表。
QCheckBox *checkBox() const返回对话框上显示的复选框。如果未设置任何复选框,则为nullptr。
QAbstractButton *clickedButton() const返回用户单击的按钮,如果用户按Esc键且未设置转义按钮,则返回nullptr。
QPushButton *defaultButton() const返回应该是消息框默认按钮的按钮。如果未设置默认按钮,则返回nullptr。
QStringdetailedText() const保存要显示在详细信息区域中的文本。
QAbstractButton *escapeButton() const返回按下转义时激活的按钮。
QMessageBox::Iconicon() const保存消息框的图标
QPixmapiconPixmap() const保存当前图标
QStringinformativeText() const包含为消息提供更完整描述的信息性文本
voidopen(QObject *receiver, const char *member)打开对话框并将其 finished()或 buttonClicked()信号连接到接收器和成员指定的插槽。如果slot-in成员的第一个参数有一个指针,则连接到 buttonClicked(),否则连接到finished()。
voidremoveButton(QAbstractButton *button)从按钮框中删除按钮而不删除它。
voidsetCheckBox(QCheckBox *cb)设置消息对话框上的复选框cb。消息框获取复选框的所有权。参数cb可以是nullptr,以从消息框中删除现有复选框。
voidsetDefaultButton(QPushButton *button)将消息框的默认按钮设置为按钮。
voidsetDefaultButton(QMessageBox::StandardButton button)将消息框的默认按钮设置为按钮。
voidsetDetailedText(const QString &text)保存要显示在详细信息区域中的文本。
voidsetEscapeButton(QAbstractButton *button)将按下Escape键时激活的按钮设置为按钮。
voidsetEscapeButton(QMessageBox::StandardButton button)将按下Escape键时激活的按钮设置为按钮。
voidsetIcon(QMessageBox::Icon)保存消息框的图标
voidsetIconPixmap(const QPixmap &pixmap)保存消息框的图标
voidsetInformativeText(const QString &text)保存要显示的消息框文本
voidsetStandardButtons(QMessageBox::StandardButtons buttons)根据文本格式设置(QMessageBox::textFormat),文本将被解释为纯文本或富文本。默认设置为 Qt::AutoText,,即消息框将尝试自动检测文本的格式。
voidsetText(const QString &text)保存要显示的消息框文本
voidsetTextFormat(Qt::TextFormat format)保存消息框显示的文本格式
voidsetTextInteractionFlags(Qt::TextInteractionFlags flags)
voidsetWindowModality(Qt::WindowModality windowModality)
voidsetWindowTitle(const QString &title)
QMessageBox::StandardButtonstandardButton(QAbstractButton *button) const返回与给定按钮对应的标准按钮枚举值,如果给定按钮不是标准按钮,则返回NoButton。
QMessageBox::StandardButtonsstandardButtons() const返回与给定按钮对应的标准按钮枚举值,如果给定按钮不是标准按钮,则返回NoButton。
QStringtext() const保存要显示的消息框文本
Qt::TextFormattextFormat() const保存消息框显示的文本格式
Qt::TextInteractionFlagstextInteractionFlags() const

二.QMessageBox的用法

1.导入QMessage库

#include <QMessageBox>

2.弹窗提示

构造QMessageBox的实例,设置所需显示的消息,然后调用exec()来显示消息。用户必须单击“确定”按钮以关闭消息框。GUI的其余部分将被阻止,直到消息框被关闭。

QMessageBox msgBox;
msgBox.setText(u8"你好~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
msgBox.exec();

在这里插入图片描述

3.提供选项的弹窗提示

一个比仅仅提醒用户事件更好的方法是询问用户该怎么做。将问题存储在信息性文本属性中,并将标准按钮属性设置为所需的按钮集作为用户响应集。通过使用位或运算符组合StandardButtons中的值来指定按钮。按钮的显示顺序取决于平台。例如,在Windows上,“保存”显示在“取消”的左侧,而在Mac OS上,顺序相反。要向用户提供更多信息以帮助他回答问题,通过setDetailedText设置详细文本属性。如果设置了详细文本属性,则显示详细信息按钮。exec()槽返回单击的按钮的StandardButtons值。

QMessageBox msgBox;
msgBox.setText(u8"该文档已被修改.");
msgBox.setDetailedText(u8"这里是详细的提示信息");
msgBox.setInformativeText(u8"是否要保存你的修改?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec();

switch (ret) {
  case QMessageBox::Save:
      qDebug() << "save";
      break;
  case QMessageBox::Discard:
      qDebug() << "Discard";
      break;
  case QMessageBox::Cancel:
      qDebug() << "Cancel";
      break;
  default:
      qDebug() << "default";
      break;
}

在这里插入图片描述

4.作为提示,报警,报错提示窗口

int ret = QMessageBox::information(this, tr(u8"信息提示"),
                               tr(u8"该文档已被修改.\n"
                                  u8"是否要保存你的修改?"),
                               QMessageBox::Ok | QMessageBox::Cancel | QMessageBox::Help);

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于窗口的类型,有以下几种可以选择:

内容说明
QMessageBox::NoIcon0the message box does not have any icon.
QMessageBox::Question4an icon indicating that the message is asking a question.
QMessageBox::Information1an icon indicating that the message is nothing out of the ordinary.
QMessageBox::Warning2an icon indicating that the message is a warning, but can be dealt with.
QMessageBox::Critical3an icon indicating that the message represents a critical problem.

对于窗口中的按钮,有以下几种可以选择:

内容说明
QMessageBox::Ok0x00000400An “OK” button defined with the AcceptRole.
QMessageBox::Open0x00002000An “Open” button defined with the AcceptRole.
QMessageBox::Save0x00000800A “Save” button defined with the AcceptRole.
QMessageBox::Cancel0x00400000A “Cancel” button defined with the RejectRole.
QMessageBox::Close0x00200000A “Close” button defined with the RejectRole.
QMessageBox::Discard0x00800000A “Discard” or “Don’t Save” button, depending on the platform, defined with the DestructiveRole.
QMessageBox::Apply0x02000000An “Apply” button defined with the ApplyRole.
QMessageBox::Reset0x04000000A “Reset” button defined with the ResetRole.
QMessageBox::RestoreDefaults0x08000000A “Restore Defaults” button defined with the ResetRole.
QMessageBox::Help0x01000000A “Help” button defined with the HelpRole.
QMessageBox::SaveAll0x00001000A “Save All” button defined with the AcceptRole.
QMessageBox::Yes0x00004000A “Yes” button defined with the YesRole.
QMessageBox::YesToAll0x00008000A “Yes to All” button defined with the YesRole.
QMessageBox::No0x00010000A “No” button defined with the NoRole.
QMessageBox::NoToAll0x00020000A “No to All” button defined with the NoRole.
QMessageBox::Abort0x00040000An “Abort” button defined with the RejectRole.
QMessageBox::Retry0x00080000A “Retry” button defined with the AcceptRole.
QMessageBox::Ignore0x00100000An “Ignore” button defined with the AcceptRole.
QMessageBox::NoButton0x00000000An invalid button.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git学习:IDEA项目上传到码云

5分钟学习创建项目上传到git服务器 文章目录前言一、gitee创建项目&#xff1f;1、gitee创建项目2、IDEA在本地创建项目3、找到git下载好git程序4、 找到git安装目录 bin目录下的 git.exe 文件5、进行操作&#xff08;提交代码到Gitee&#xff09;6、 上传成功&#xff08;刷新…

vue 解决问题:Webpack安装不成功,webpack -v无法正常显示版本号

目录 一、解决问题&#xff1a;Webpack安装不成功&#xff0c;webpack -v无法正常显示版本号 二、解决问题&#xff1a; ERROR Error: Cannot find module webpack-log 三、 解决报错&#xff1a;error:03000086:digital envelope routines::initialization error 四、解决…

Java设计模式笔记——七大设计原则

系列文章目录 第一章 Java 设计模式之七大设计原则 文章目录系列文章目录前言一、单一职责原则1.案例分析2.改进二、开闭原则1.案例分析2.改进三、里氏替换原则1.案例分析2.改进四、依赖倒转原则五、接口隔离原则1.案例分析2.改进六、合成复用原则1.案例分析2.改进七、迪米特原…

PythonWeb Django PostgreSQL创建Web项目(三)

了解Django框架下如何配置数据库链接与创建模型和应用 使用Django创建web项目&#xff0c;首先需要了解生成的项目文件结构&#xff0c;以及对应文件功能用途方可开始web项目页面创建&#xff0c;下方先介绍文件功能&#xff0c;之后再配置数据库连接以及管理创建模型与应用&a…

招生咨询|浙江大学MPA项目2023年招生问答与通知

问&#xff1a;报考浙江大学MPA的基本流程是怎么样的&#xff1f; 答&#xff1a;第一阶段为网上报名与确认。MPA考生须参加全国管理类联考&#xff0c;网上报名时间一般为10月初开始、10月下旬截止&#xff0c;错过网上报名时间后不能补报。确认时间一般为11月上旬&#xff0c…

如何提高软件测试效率 降低开发成本?

1、单元测试以开发人员为主 测试分工需根据测试人员的特点进行&#xff0c;而单元测试应以开发人员为主&#xff0c;以保障每个单元能够完成设计的功能。集成测试也可以以开发人员为主进行。当软件体系结构完成后&#xff0c;独立测试人员应尽量选择比较熟悉相关领域的人员。​…

三、Spring的入门程序

第一个Spring程序 创建新的空工程spring6 设置JDK版本17&#xff0c;编译器版本17 设置IDEA的Maven&#xff1a;关联自己的maven 在空的工程spring6中创建第一个maven模块&#xff1a;spring6-001-first 在pom.xml添加spring context依赖和junit依赖&#xff0c; <?x…

基于轻量级YOLO开发构建中国象棋目标检测识别分析系统

关于棋类相关的项目在我之前的博文里面都有做过&#xff0c;如下&#xff1a;《yolov5s融合SPD-Conv用于提升小目标和低分辨率图像检测性能实践五子棋检测识别》《YOLOV5融合SE注意力机制和SwinTransformer模块开发实践的中国象棋检测识别分析系统》《基于yolov5s实践国际象棋目…

第七章.集成学习(Ensemble Learning)—袋装(bagging),随机森林(Random Forest)

第七章.集成学习 (Ensemble Learning) 7.1 集成学习—袋装(bagging),随机森林(Random Forest) 集成学习就是组合多个学习器&#xff0c;最后得到一个更好的学习器。 1.常见的4种集成学习算法 个体学习器之间不存在强依赖关系&#xff0c;袋装&#xff08;bagging&#xff09;…

智慧厕所智能卫生间系统有哪些功能

南宁北站智能厕所主要功能有哪些&#xff1f;1、卫生间环境空气监测男厕、女厕环境空气监测系统包括对厕所内的温度、湿度、氨气、硫化氢、PM2.5、烟雾等气体数据的实时监测。2、卫生间厕位状态监测系统实时监测厕位内目前的使用状态(有人或无人&#xff09;&#xff0c;数据信…

SQLyog图形化界面工具【超详细讲解】

目录 一、SQLyog 介绍 二、SQLyog 社区版下载 三、SQLyog 安装 1、选择Chinese后点击OK 2、点击“下一步” 3、选择“我接受”后点击“下一步” 4、点击“下一步” 5、修改安装位置&#xff08;尽量不要安装在C盘&#xff09;&#xff0c;点击“安装” 6、安装后点击“…

无线WiFi安全渗透与攻防(三)之Windows扫描wifi和破解WiFi密码

系列文章 无线WiFi安全渗透与攻防(一)之无线安全环境搭建 无线WiFi安全渗透与攻防(二)之打造专属字典 windows下wifi进行扫描和破解 1.wifi扫描 &#xff08;1&#xff09;.软件介绍 WirelessMon是一款无线网络扫描工具&#xff0c;它可以帮助用户扫描附近的无线信号&…

操作系统——14.调度算法的评价指标

这篇文章我们来讲一下算法调度的评价指标&#xff0c;为后面讲调度算法做下铺垫 目录 1.概述 1.CPU的利用率 2.系统吞吐量 3.周转时间 4.等待时间 5.响应时间 6.小结 1.概述 首先&#xff0c;我们来看一下这节内容的大体框架 1.CPU的利用率 由于早期的CPU造价极其昂贵…

1.flink简介与重要概念

Introduction 简介 Apache Flink是一个框架和分布式处理引擎&#xff0c;用于在无界和有界数据流上进行有状态计算。Flink可以运行在常见集群环境如YARN Kubernetes Mesos,内存级别的速度和任意的扩展 Unbounded streams 无界数据流 无界数据流有开始但是没有结束,需要持续不断…

JavaSe第4次笔记

1.转义字符和编程语言无关。 2.斜杠(\)需要转义&#xff0c;反斜杠(/)不需要转义。 3.不能做switch的参数的数据类型&#xff1a;long float double boolean( String可以)。 4.输入的写法&#xff1a;Scanner(回车自动带头文件(import java.util.Scanner;)) Scanner scan …

软件测试(linux命令篇-01文件操作命令)

linux文件篇命令linux系统常用文件操作命令1、查看目录内容及常用参数&#xff1a;ls2、目录切换&#xff1a;cd 3、创建文件&#xff1a;touch 4、创建目录 &#xff1a;mkdir5、 删除文件或目录&#xff1a;rm6、文件或目录的复制&#xff1a;cp7、文件或目录的移动&#xff…

TMS Sphinx crack

TMS Sphinx crack 用于身份访问管理的TMS Sphinx Delphi框架&#xff0c;包括授权和身份验证。 TMS Sphinx允许您为多个应用程序实现单点登录(SSO)&#xff1a;web、本机、移动或机器到机器API通信。它可用于通过登录表单、类似的用户界面和基于服务的身份验证来验证实际用户&a…

如何制作一个自定义的winpe?

winpe制作过程 获取相关资源 https://www.aliyundrive.com/s/MP58JbRsm76 文件存放位置 将压缩包存放在一个全英文目录下了,我这里选择了D:/winpe目录 解压文件 将三个压缩包进行解压到当前目录,如下图所示 创建一个mount目录,并在mount目录下分别创建boot和install目…

C++11:继承

目录 继承的基本概念 继承方式 基类和派生类对象赋值转换/切片 继承中的作用域 派生类的四个成员函数&#xff1a; 构造函数 拷贝构造函数 赋值重载 析构函数 静态成员 继承与友元 多继承 菱形继承 多继承的指针偏移问题 组合 继承的基本概念 继承出现的契机是某一…

Java 多线程 --- 锁的概念和类型划分

Java 多线程 --- 锁的概念和类型划分锁的概念乐观锁与悲观锁公平锁与非公平锁什么是可重入锁独占锁与共享锁轻量级锁和重量级锁自旋锁 (Spinlock)锁的概念 锁可以将多个线程对共享数据的并发访问转换为串行访问, 这样一个共享数据一次只能被一个线程访问, 该线程访问结束后其他…