【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt窗口 | 标准对话框 | 消息对话框QMessageBox

文章编号:Qt 学习笔记 / 54

文章目录

  • Qt窗口 | 标准对话框 | 消息对话框QMessageBox
    • 一、QMessageBox介绍
      • 1. 简介
      • 2. 静态成员函数
    • 二、QMessageBox的使用
      • 1. 创建QMainWindow窗口
      • 2. 创建按钮触发对话框
      • 3. 编辑消息对话框(QMessageBox生成按钮)
      • 4. 编辑消息对话框(QPushButton创建对话框按钮)
      • 5. 编辑消息对话框(快速创建消息对话框)


一、QMessageBox介绍

1. 简介

在Qt中,可以使用QMessageBox类来创建和显示消息对话框。QMessageBox提供了各种类型的消息对话框,包括信息消息、警告消息、错误消息和询问消息等。

2. 静态成员函数

静态成员函数QMessageBox::information、QMessageBox::warning、QMessageBox::critical和QMessageBox::question分别创建信息、警告、错误和询问消息对话框。
在这里插入图片描述

静态成员函数说明
Question⽤于正常操作过程中的提问
Information⽤于报告正常运⾏信息
Warning⽤于报告⾮关键错误
Critical⽤于报告严重错误

二、QMessageBox的使用

1. 创建QMainWindow窗口

步骤参考文章【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
在文章中详细介绍了如何创建一个QMainWindow窗口

2. 创建按钮触发对话框

创建按钮及生成槽函数
在这里插入图片描述

3. 编辑消息对话框(QMessageBox生成按钮)

编辑槽函数,进行新建消息对话框。

void MainWindow::on_pushButton_clicked()
{
    //创建消息对话框
    QMessageBox * messageBox = new QMessageBox(this);
    //设置对话框标题
    messageBox->setWindowTitle("消息对话框");
    //设置对话框中的文本
    messageBox->setText("消息对话框的文本");
    //设置对话框的图标
    messageBox->setIcon(QMessageBox::Warning);
    //添加对话框内的按钮(按钮有QMessageBox自己生成)
    messageBox->setStandardButtons(QMessageBox::Ok | QMessageBox::Save);

    //模态对话框,非模态对话框使用show(),QMessageBox常用于模态
    //messageBox->show();
    messageBox->exec();
    //关闭窗口释放内存
    messageBox->setAttribute(Qt::WA_DeleteOnClose);
}

Ctrl+左键点击QMessageBox查看StandardButton按钮属性

enum StandardButton {
		 // keep this in sync with QDialogButtonBox::StandardButton and QPlatformDialogHelper::StandardButton
        NoButton           = 0x00000000,
        Ok                 = 0x00000400,
        Save               = 0x00000800,
        SaveAll            = 0x00001000,
        Open               = 0x00002000,
        Yes                = 0x00004000,
        YesToAll           = 0x00008000,
        No                 = 0x00010000,
        NoToAll            = 0x00020000,
        Abort              = 0x00040000,
        Retry              = 0x00080000,
        Ignore             = 0x00100000,
        Close              = 0x00200000,
        Cancel             = 0x00400000,
        Discard            = 0x00800000,
        Help               = 0x01000000,
        Apply              = 0x02000000,
        Reset              = 0x04000000,
        RestoreDefaults    = 0x08000000,

        FirstButton        = Ok,                // internal
        LastButton         = RestoreDefaults,   // internal

        YesAll             = YesToAll,          // obsolete
        NoAll              = NoToAll,           // obsolete

        Default            = 0x00000100,        // obsolete
        Escape             = 0x00000200,        // obsolete
        FlagMask           = 0x00000300,        // obsolete
        ButtonMask         = ~FlagMask          // obsolete
    };

在这里插入图片描述

4. 编辑消息对话框(QPushButton创建对话框按钮)

void MainWindow::on_pushButton_2_clicked()
{
    //创建消息对话框
    QMessageBox * messageBox = new QMessageBox(this);
    //设置对话框标题
    messageBox->setWindowTitle("消息对话框");
    //设置对话框中的文本
    messageBox->setText("消息对话框的文本");
    //设置对话框的图标
    messageBox->setIcon(QMessageBox::Warning);
    //使用QPushButton的方式创建按钮
    QPushButton* button = new QPushButton("按钮",messageBox);
    messageBox->addButton(button,QMessageBox::AcceptRole);
    //模态对话框,非模态对话框使用show(),QMessageBox常用于模态
    //messageBox->show();
    messageBox->exec();
    //关闭窗口释放内存
    messageBox->setAttribute(Qt::WA_DeleteOnClose);
}

Ctrl+左键点击QMessageBox查看StandardButton按钮属性

enum ButtonRole {
        // keep this in sync with QDialogButtonBox::ButtonRole and QPlatformDialogHelper::ButtonRole
        InvalidRole = -1,
        AcceptRole,
        RejectRole,
        DestructiveRole,
        ActionRole,
        HelpRole,
        YesRole,
        NoRole,
        ResetRole,
        ApplyRole,

        NRoles
    };

在这里插入图片描述

5. 编辑消息对话框(快速创建消息对话框)

//警告
void MainWindow::on_pushButton_clicked()
{
	//参数1:父窗口的地址 参数2:对话框窗口标题 参数3:对话框内的文本 参数4:添加按钮
    QMessageBox::warning(this,"对话框标题","对话框文本",QMessageBox::Ok | QMessageBox::Save);
}
//报错
void MainWindow::on_pushButton_2_clicked()
{
    QMessageBox::critical(this,"对话框标题","对话框文本",QMessageBox::Ok | QMessageBox::Save);
}
//消息
void MainWindow::on_pushButton_3_clicked()
{
    QMessageBox::information(this,"对话框标题","对话框文本",QMessageBox::Ok | QMessageBox::Save);
}
//问题
void MainWindow::on_pushButton_4_clicked()
{
    QMessageBox::question(this,"对话框标题","对话框文本",QMessageBox::Ok | QMessageBox::Save);
}


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux pxe和无人值守

一 PXE和无人值守 pxe c/s模式 允许客户端通过网络从远程服务器(服务端)下载引导镜像 加载安装文件 实现自动化安装操作系统 无人值守 就是安装选项不需要认为干预 可以自动化实现 pxe的优点 1 规模化 同时装配多台服务器 20多 30台 2 自动化 …

Rust学习06:使用CSDN的AI工具“C知道”分析代码错误

朋友们,我最近真的是在绝望的边缘了! Rust咋这么蓝涅! 资料咋这们少涅! 记得学Python的时候,基本上你遇到的所有问题都可以在书上或者网上找到答案,中文世界找不到那么在英文世界一定能找到答案。 我猜&…

Redis】Redis主从复制(二)————主从结构/流程

目录 回顾slaveof 命令断开主从复制关系切换主从复制关系只读网络延迟问题应对措施补充 主从结构一主一从结构问题改进 一主多从结构树形主从主从切换结构 主从复制流程简单来记关于数据同步两个参数replicationidoffset. psync 运行流程全量复制和部分复制全量复制流程&#x…

使用使用rundll32 调用指定dll的方法

使用使用rundll32 调用指定dll的方法 //顾名思义,"执行32位的DLL文件"。它的作用是执行DLL文件中的内部函数,这样在进程当中, 只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐…

自定义组件——ABManager(AB包管理器)

需求描述 在Unity3D引擎中,AB包作为常用的游戏资源存储格式之一。而对于资源管理我们就不得不谈到集中管理的优势了,通过统一的接口加载和卸载AB包及其中的资源将进一步提升我们的编程效率。本文将围绕这个需求进行尝试。 功能描述 1. AB包的加载包括同…

项目:双人五子棋对战-对战模块(6)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 当玩家进入到游戏房间后, 就要开始一局紧张而又刺激的五子棋对战了, 本文将就前端后端的落子与判断胜负的部分作详细讲解. 模块详细讲解 约定前后端交互的接口 首先是建立连接后, 服务器需要生成一些游戏的初始信息(可…

java程序在运行过程各个内部结构的作用

一:内部结构 一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈接下来我们通过一个示意图介绍一下这个空间。 如图所示,当一个hell…

63-目录操作(QDir类)及展示系统文件实战

一、目录操作(QDir 类) #include <QCoreApplication>#include <QDir> #include <QStringList> #include <QtDebug>// 自定义函数实现获取目录下大小qint64 GetDirFileInfoSizeFunc(const QString &qpath) {// QDir类专门用来操作路径名称或底层文…

catia零件装配时预览零件的形状

这样的显示方式看不到 选择大或中图标就可预览零件形状

Qt | openSSL将TCP数据进行不对称(RSA)加密传输-windows平台实操(可行)

01、windows平台工具准备 QtQt5.14.2openSSL下载(选择适合自己的版本即可)https://slproweb.com/products/Win32OpenSSL.htmlTCP调试助手调试助手02、简介 首先简单介绍一下openssl。接着描述如何在windo

新增多种图表类型,新增视频、流媒体、跑马灯组件,DataEase开源数据可视化分析工具v2.7.0发布

2024年6月11日&#xff0c;人人可用的开源数据可视化分析工具DataEase正式发布v2.7.0版本。 这一版本的功能变动包括&#xff1a;图表方面&#xff0c;新增对称条形图、桑基图、流向地图、进度条等图表类型&#xff0c;并对已有的仪表盘、指标卡、明细表、汇总表、水波图、象限…

(十二)人工智能应用--深度学习原理与实战--模型编译及训练参数的选择

神经网络模型的编译实际上是为网络指定几个非常重要的运行参数,包括优化器、损失函数(误差函数】和评价指标,这三者也代表着神经网络的核心运行机制----通过损失函数来计算网络误差、通过优化器来调整网络参数以降低误差、通过评价指标来衡量网络的性能。神经网络训练时除了…

香港裸机云多IP服务器与普通独享IP服务器的区别

在当前的云计算和服务器托管领域&#xff0c;香港裸机云多IP服务器和普通独享IP服务器是两种常见的选择。它们各自具有独特的特点和优势&#xff0c;适用于不同的应用场景。以下是对这两种服务器类型的详细比较&#xff1a; 一、概念定义 香港裸机云多IP服务器&#xff1a;这是…

【因果推断python】28_面板数据和固定效应2

目录 固定效应 固定效应 为了方面后面更正式地讲述&#xff0c;让我们首先看一下我们拥有的数据。按照我们的例子&#xff0c;我们将尝试估计婚姻对收入的影响。我们的数据包含多年以来多个个体 (nr) 的这两个变量&#xff0c;married 和lwage。请注意&#xff0c;工资采用对数…

【iOS】—— 响应者链和事件传递链

【iOS】—— 响应者链和事件传递链 响应者连和事件传递链概念响应者响应链事件响应者响应链事件iOS中的事件类型&#xff1a;UIKit继承图UIRseponderUITouchUIEvent 事件的产生与传递传递链传递过程 总结 响应者连和事件传递链 概念 响应者 由离用户最近的view向系统传递。i…

【CGAL】Region_Growing检测圆柱,保存结果并输出圆柱体参数

目录 说明代码展示结果展示问题说明 说明 这篇博客以代码为主&#xff0c;使用CGAL中的region growing方法检测圆柱体。将不同的圆柱按不同颜色保存&#xff0c;并输出圆柱体的中心坐标、轴方向以及半径。 region growing的具体思想网上的文章已经有很多&#xff0c;可以参考这…

安装mysql5.7,然后安装mysql workbench进行管理。

1、下载mysql5.7 MySQL :: Download MySQL Installer 这个是32位的安装版 MySQL :: Download MySQL Community Server (Archived Versions) 这个是zip版 这里我下载的是zip版本。 下载完成后&#xff0c;解压缩&#xff0c;然后新建文件my.ini进行配制。 my.ini [mysqld]…

Django DetailView视图

Django的DetailView是一个用于显示单个对象详情的视图。下面是一个使用DetailView来显示单个书籍详情的例子。 1&#xff0c;添加视图 Test/app3/views.py from django.shortcuts import render# Create your views here. from django.views.generic import ListView from .m…

数据结构预备知识(Java):包装类泛型

1、包装类 1.1 包装类 在Java中&#xff0c;每一个基本数据类型都有一个对应的包装类&#xff1a; 在SE的学习中我们已有过简单了解。 我们可以注意到&#xff0c;除了int类型的包装类为Integer&#xff0c;char类型的包装类为Character外&#xff0c;其余基本类型的包装类均…

wordpress主题开发

科普一&#xff1a;wordpress 是一套用 php 这个语言写的CMS后台管理系统&#xff0c;即我们大家的 wordpress 网站后台是一样的&#xff0c;能体现我们网站外观不同的地方就在于wordpress主题&#xff08;即皮肤&#xff09;&#xff0c;而这个主题的基本构成是 htmlcssjavasc…