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

news2024/11/15 20:07:17

  • 博客主页: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);
}


在这里插入图片描述

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

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

相关文章

基于长短期记忆网络 LSTM 的下一个单词预测

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…

Parallels Desktop 19虚拟机助你一机多用

Parallels Desktop 19 mac虚拟机是一款功能强大且易于使用的虚拟化软件,它允许用户在Mac电脑上同时运行Windows、Linux和其他多种操作系统,为用户提供了极大的灵活性和兼容性。 Parallels Desktop 19获取 这款虚拟机软件具有直观易用的界面,…

云动态摘要 2024-06-11

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [低至1折]腾讯混元大模型产品特惠 腾讯云 2024-06-06 腾讯混元大模型产品特惠,新用户1折起! 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用 最新产品更新 云服务器运维监…

您的计算机时间有误

问题 使用 apt update 更新软件时报错,提示 Release 文件已过期。 另外还发现,命令行 Ping 百度是通的,但是通过浏览器无法访问百度网站 解决 浏览器已经有很明确的的提示了:您的计算机时间有误。 所以,同步一下…

【总线】设计fpga系统时,为什么要使用总线?

目录 为什么用总线 为什么选择AMBA 总结 系列文章 【总线】AMBA总线架构的发展历程-CSDN博客 【总线】设计fpga系统时,为什么要使用总线?-CSDN博客 为什么用总线 在FPGA系统设计中,使用总线是为了实现组件间的高效互联与通信&#xff0c…

鸿蒙轻内核A核源码分析系列四(2) 虚拟内存

本文我们来熟悉下OpenHarmony鸿蒙轻内核提供的虚拟内存(Virtual memory)管理模块。 本文中所涉及的源码,以OpenHarmony LiteOS-A内核为例,均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_a 获取。如果涉及开发板…

超详细十大排序算法

一、排序总结 性能指标:稳定性,时间复杂度,空间复杂度 排序算法的稳定性是指当排序的元素中存在相同的值时,排序算法能够保持它们原先的相对顺序。如果一个排序算法是稳定的,那么在排序后,相同值的元素在原…

uni-admin:基于uni-app与uniCloud的云端管理后台开发神器

随着移动互联网和云计算技术的飞速发展,越来越多的企业和开发者开始寻求一种快速、高效且灵活的解决方案来构建自己的管理后台系统。在这样一个背景下,uni-admin应运而生,它基于uni-app和uniCloud,为开发者提供了一个功能强大、易…

YOLO检测环境安装配置

YOLO介绍 YOLO学习手册:YOLO教程 YOLO [ˈjoʊloʊ](You Only Look Once)是一种快速而准确的目标检测算法,由Joseph Redmon等人在2016年提出。YOLO被广泛应用于计算机视觉领域,包括实时视频分析、自动驾驶、安防监控、…

理解 Bearer Token:什么是它以及如何运作?

在当前数字化时代,网络安全尤为关键。随着技术快速进步,需求日益增长,保障应用程序中用户数据的安全成为开发者们的首要任务。其中,Bearer Token 作为一种高效的验证策略,在防止未授权访问中发挥着不可或缺的作用。 解…

高清实拍类型视频素材去哪里找?高清实拍素材网站分享

在这篇文章中,我将为大家介绍一些高清实拍类型的视频素材资源,这些资源对于我们新媒体创作者来说至关重要。优质的视频素材能显著提升作品的吸引力,因此选择合适的视频素材平台非常关键。下面我将详细介绍几个非常实用的视频素材平台&#xf…

CV技术指南 | 其实Mamba是一种线性注意力?清华大学黄高团队揭秘开视觉Mamba的真实面目!

本文来源公众号“CV技术指南”,仅用于学术分享,侵权删,干货满满。 原文链接:其实Mamba是一种线性注意力?清华大学黄高团队揭秘开视觉Mamba的真实面目! 前言 本文揭示了 Mamba 模型与 Linear Attention …

shell脚本和变量

一、shell脚本 脚本就是可运行的代码的集合,脚本语言(计算机语言)的特点:从上到下,按行执行。 Python:脚本语言,格式更严谨,严格地执行缩进。也是从上到下按行执行。 shell脚本运…

Linux文件权限信息和Linux文件与文件夹的管理

目录 前言一、系统环境二、Linux文件权限信息2.1 查看Linux文件权限信息2.2 修改Linux文件权限信息2.2.1 chmod命令2.2.2 chown命令 三、Linux文件与目录的管理3.1 查看文件或文件夹3.1.1 查看文件内容3.1.2 查看文件夹内容 3.2 新增文件或文件夹3.2.1 新增文件3.2.2 新增文件夹…

从零开始利用MATLAB进行FPGA设计(七)固化程序

FPGA开发板:AX7020;Xilinx 公司的 Zynq7000 系列的芯片XC7Z020-2CLG400I,400引脚 FBGA 封装。 HARDWARE PLATFORM在2019以后的vivado中已经没有了。本期实际上已经与MATLAB无关,主要介绍通过VITIS等方法进行程序固化。 目录 ZY…

光伏+储能,势在必行!

随着全球对可再生能源需求的不断增长,光伏行业正迎来前所未有的发展机遇。然而,光伏发电的间歇性和不稳定性特点,使得储能技术成为解决其并网难题、提高能源利用效率的关键。因此,“光伏储能”的组合,已成为行业发展的…

老生常谈!程序员为什么要阅读源代码?

大家好,我是码农先森。 阅读源码这是一个老生常谈的话题了,但又是很多人想做又没有付出行动的事情。前段时间我研究了 Swoole 的源代码,并且输出了系列的源码分析文章「感兴趣的朋友可以翻阅以前的文章」。虽然这个过程很枯燥和艰难&#xf…

c++ 6.11

作业: 思维导图: 作业题: 搭建一个货币的场景,创建一个名为 RMB 的类,该类具有整型私有成员变量 yuan(元)、jiao(角)和 fen(分),并且…

VMware Workstation虚拟机进入U盘PE系统

注意事项 VMware Workstation虚拟机版本不能高于16.1.2版本!!! 本实验使用的版本如下 实际操作 在已安装好的虚拟机处右键,点击设置。虚拟机安装win10教程请参考VMware Workstation安装win10操作系统-CSDN博客 在弹出的窗口点击…

卷产品 、卷生态,百度这款AI产品卷到了第一

万万没想到,最先跑出来的AI杀手级应用竟然是百度文库。 6月7日,“AI产品榜”(aicpb.com)发布了最新的5月国内总榜榜单,百度文库AI功能以6536万的月访问量一骑绝尘,连续两个月霸榜第一。 乍看有些不可思议&…