您的位置:首页 > 科技 > 能源 > 【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox

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

2024/10/5 23:20:12 来源:https://blog.csdn.net/m0_74014525/article/details/139605803  浏览:    关键词:【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);
}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com