qt QMessageBox详解

[复制链接]
发表于 2025-12-30 14:01:18 | 显示全部楼层 |阅读模式
 1、概述

QMessageBox是Qt库中的一个类,它用于在图形用户界面(GUI)步调中表现消息框。消息框是一种用于向用户表现信息、告诫、错误或扣问用户确认的对话框。QMessageBox可以表现文本、图标和按钮,并答应自界说按钮的文本和功能。通过使用QMessageBox,开发者可以方便地创建用户友好的界面,向用户转达须要的信息或哀求用户做出决议。
QMessageBox类继续自QDialog类,它提供了多种范例的消息框,包罗信息框、告诫框、错误框、扣问框等。这些消息框可以通过差别的图标和按钮组合来区分,以顺应用户的差别需求。

2、告急方法

QMessageBox类提供了多个静态方法和构造函数来创建和表现消息框。以下是一些告急的方法:

  • QMessageBox::information:用于创建一个信息对话框,通常用于向用户表现一些告急的信息或关照。
  • QMessageBox::warning:用于创建一个告诫对话框,通常用于向用户表现一些告诫或非严厉的题目,以便用户接纳得当的举措或留意。
  • QMessageBox::critical:用于创建一个临界错误对话框,通常用于向用户表现告急的错误信息并要求用户接纳得当的举措。
  • QMessageBox::question:用于创建一个扣问对话框,通常用于扣问用户是否确认某个使用,如删除文件或退出应用步调。
  • QMessageBox::about:用于创建一个关于对话框,通常用于表现关于应用步调或某个功能的信息。
别的,QMessageBox还提供了构造函数和exec()方法,答应开发者创建自界说的消息框并表现它们。通过构造函数,可以指定对话框的父窗口、标题、文本、图标、按钮等属性。通过exec()方法,可以以模态方式表现对话框,壅闭步调的实行,直到用户关闭对话框。

3、告急按钮范例 

以下是QMessageBox类中一些常见的按钮范例及其扼要先容:

  • QMessageBox::Ok:确定按钮。
  • QMessageBox::Cancel:取消按钮。
  • QMessageBox::Yes:是按钮。
  • QMessageBox::No:否按钮。
  • QMessageBox::Retry:重试按钮。
  • QMessageBox::Ignore:忽略按钮。

4、告急图标范例


以下是QMessageBox类中一些常见的图标范例及其扼要先容:

  • QMessageBox::NoIcon:无图标。
  • QMessageBox::Information:信息图标。
  • QMessageBox::Warning:告诫图标。
  • QMessageBox::Critical:错误图标。
  • QMessageBox:uestion:扣问标。
  1. #include <QApplication>  
  2. #include <QMessageBox>  
  3. #include <QPushButton>  
  4. #include <QWidget>  
  5.   
  6. int main(int argc, char *argv[])  
  7. {  
  8.     QApplication app(argc, argv);  
  9.   
  10.     QWidget window;  
  11.     window.setWindowTitle("QMessageBox Example");  
  12.   
  13.     QPushButton *infoButton = new QPushButton("Show Information", &window);  
  14.     infoButton->setGeometry(50, 50, 150, 30);  
  15.   
  16.     QPushButton *criticalButton = new QPushButton("Show Critical Error", &window);  
  17.     criticalButton->setGeometry(50, 100, 150, 30);  
  18.   
  19.     QObject::connect(infoButton, &QPushButton::clicked, [&]() {  
  20.         QMessageBox::StandardButton button = QMessageBox::information(  
  21.             &window,  
  22.             "Information",  
  23.             "This is an information message.",  
  24.             QMessageBox::Ok | QMessageBox::Cancel,  
  25.             QMessageBox::NoButton  
  26.         );  
  27.         if (button == QMessageBox::Ok) {  
  28.             // User clicked Ok  
  29.         } else if (button == QMessageBox::Cancel) {  
  30.             // User clicked Cancel  
  31.         }  
  32.     });  
  33.   
  34.     QObject::connect(criticalButton, &QPushButton::clicked, [&]() {  
  35.         QMessageBox::StandardButton button = QMessageBox::critical(  
  36.             &window,  
  37.             "Critical Error",  
  38.             "An error has occurred. Please try again.",  
  39.             QMessageBox::Retry | QMessageBox::Abort,  
  40.             QMessageBox::NoButton  
  41.         );  
  42.         if (button == QMessageBox::Retry) {  
  43.             // User clicked Retry  
  44.         } else if (button == QMessageBox::Abort) {  
  45.             // User clicked Abort  
  46.         }  
  47.     });  
  48.   
  49.     window.resize(300, 200);  
  50.     window.show();  
  51.   
  52.     return app.exec();  
  53. }
复制代码

以为有资助的话,打赏一下呗。。
           


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表