开发者

Qt之QMessageBox的具体使用

开发者 https://www.devze.com 2025-05-21 10:41 出处:网络 作者: 破晓的历程
目录1.引言2.简单介绍3.常见函数4.按钮类型(QMessage::StandardButton)5.分步骤实现弹窗6.总结1.引言
目录
  • 1.引言
  • 2.简单介绍
  • 3.常见函数
  • 4.按钮类型(QMessage::StandardButton)
  • 5.分步骤实现弹窗
  • 6.总结

1.引言

在电脑上进行某些不可逆的操作时,电脑通常会发出弹窗,询问我们是否觉得继续此操作,我们可以选择继续或者说是取消。那么在Qt有没有可以实现类似功能的类呢?有的兄弟,有的!像这样的类我们有 QMessageBox

2.简单介绍

QMessageBox 是 Qt 中用于弹出 对话框消息 的类,常用于提示信息、警告、错误、确认等场景,是 Qt GUI 应用开发中非常常用的组件之一。

用于弹出一个模式对话框(模态窗口),显示消息给用户,并等待用户点击按钮(如“确定”、“js取消”、“是”、“否”等)后再继续程序执行。

3.常见函数

Qt提供了很快捷的静态函数,使用起来非常的方便!

信息提示框(information)

QMessageBox::information(this, "标题", "这是一个信息提示框");

警告框(w编程客栈arning)

QMessageBox::warning(this,"警告","这是一个警告框");

错误框(critical)

QMessageBox::critical(this,"错误","出现了严重的错误");

提问框 (question))(带按钮选项)

    int ret = QMessageBox::question(nullptr, ("MyNoteBook Notice:"),
                                    ("The document has been modified.\n"
                                     "Do you want to save your changes?"),
                                    QMessageBox::Save | QMessageBox::Discard
                                    | QMes编程sageBox::Cancel, /*按钮的属性*/
                                    QMessageBox::Save); /*默认按钮按下*/
    switch (ret)
    {
    case QMessageBox::Save:
        qDebug()<<"QMessageBox::Save";
        break;
    case QMessageBox::Discard:
        qDebug()<<"QMessageBox::Discard";
        break;
    case QMessageBox::Cancel:
        qDebug()<<"QMessageBox::Cancel";
        break;
     default:
        break;
编程客栈    }

4.按钮类型(QMessage::StandardButton)

按钮枚举值显示内容
QMessageBox::Ok“确定”
QMessageBox::Cancel“取消”
QMessageBox::Yes“是”
QMessageBox::No“否”
QMessageBox::Abort“终止”
QMessageBox::Retry“重试”
QMessageBox::Ignore“忽略”

可以多个按钮结合使用

`QMessageBox::Ok`|`QMessageBox::Cancel`
图标类型含义
QMessageBox::NoIcon无图标
QMessageBox::Information信息图标(ℹ️)
QMessageBox::Warning警告图标(⚠)
QMessageBox::Critical错误图标(❌)
QMessageBox::Question问号图标(❓)

5.分步骤实现弹窗

   // 创建一个 QMessageBox 消息框对象,用于提示用户是否保存文件
    QMessageBox Box;
    
    // 设置对话框窗口标题
    Box.setWindowTitle("MyNoteBook Notice:");

    // 设置对话框显示的文本(\n 表示换行)
    Box.setText("The document has been modified.\n"
                "Do you want to save your changes?");

    // 设置对话框上的按钮为“是”和“否”两个选项
    Box.setStandardButtons(QMessageBox::Yes | QMessageBox::No);

    // 设置默认选中的按钮为“是”
    Box.setDefaultButton(QMessageBox::Yes);

    // 弹出对话框并等待用户点击按钮,返回用户javascript点击的按钮值(Yes 或 No)
    int ret = Box.exec();

    // 根据用户点击的按钮执行不同的操作
    switch (ret)
    {
    case QMessageBox::Yes:
        // 用户点击了“是”:你可以在这里编写保存文件的逻辑
        // 例如:saveFile();
        break;

    case QMessageBox::No:
        // 用户点击了“否”:可以选择不保存,直接退出或继续关闭程序
        break;

    default:
        // 理论上不会执行到这里,但为了安全起见保留 default 分支
        break;
    }

6.总结

本文我们学习了QMessageBox这一Qt中常见的类,明白了对话框是如何出现的,以及如何修改对话框的内容!

到此这篇关于Qt之QMessageBox的具体使用的文章就介绍到这了,更多相关Qt QMessageBox内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号