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

2024-06-12 04:12

本文主要是介绍【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::StandardButtonNoButton           = 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,                // internalLastButton         = RestoreDefaults,   // internalYesAll             = YesToAll,          // obsoleteNoAll              = NoToAll,           // obsoleteDefault            = 0x00000100,        // obsoleteEscape             = 0x00000200,        // obsoleteFlagMask           = 0x00000300,        // obsoleteButtonMask         = ~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::ButtonRoleInvalidRole = -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);
}

在这里插入图片描述

这篇关于【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053161

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Qt 中 isHidden 和 isVisible 的区别与使用小结

《Qt中isHidden和isVisible的区别与使用小结》Qt中的isHidden()和isVisible()方法都用于查询组件显示或隐藏状态,然而,它们有很大的区别,了解它们对于正确操... 目录1. 基础概念2. 区别清见3. 实际案例4. 注意事项5. 总结1. 基础概念Qt 中的 isHidd

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

C++ Primer 标准库vector示例详解

《C++Primer标准库vector示例详解》该文章主要介绍了C++标准库中的vector类型,包括其定义、初始化、成员函数以及常见操作,文章详细解释了如何使用vector来存储和操作对象集合,... 目录3.3标准库Vector定义和初始化vector对象通列表初始化vector对象创建指定数量的元素值

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

Spring Boot整合消息队列RabbitMQ的实现示例

《SpringBoot整合消息队列RabbitMQ的实现示例》本文主要介绍了SpringBoot整合消息队列RabbitMQ的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装Spring