• Qt消息对话框的使用


    本文介绍Qt消息对话框的使用。

    QMessageBox类是Qt编程中常用到的一个类,主要用来进行一些简单的消息提示,比如:问题对话框,信息对话框等,这些对话框都属于QMessageBox类的静态方法,使用起来比较简单,方便。

    1."information"对话框

    函数原型:

    QMessageBox::StandardButton QMessageBox::information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)

    其中,

    parent:指定父窗口

    title:对话框标题

    text:显示内容

    buttons:显示哪些按钮,可以采用"|"方式进行组合,如同时显示"Yes","No"2个按钮可以采用:"QMessageBox::Yes | QMessageBox::No"进行组合,相见"QMessageBox"描述

    defaultButton:默认显示哪个按钮,如默认显示"Yes"按钮,可以采用:"QMessageBox::Yes"

    返回值:

    QMessageBox::StandardButton

    因对话框为模态对话框,执行到这里会阻塞,这里可以通过返回值来进行分支处理,如:

    1. int ret = QMessageBox::information(this, "information", "information message box test", QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
    2. if (ret == QMessageBox::Ok) {
    3. qDebug() << "Ok";
    4. } else {
    5. qDebug() << "Cancel";
    6. }

    注意:弹出的对话框"X"按钮对应的返回值为"RejectRole"类型的那个按钮功能。

    2."question"对话框

    函数原型:

    QMessageBox::StandardButton QMessageBox::question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), QMessageBox::StandardButton defaultButton = NoButton)

    参数含义和1类似。

    3."warning"对话框

    函数原型:

    QMessageBox::StandardButton QMessageBox::warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)

    参数含义和1类似。

    4."critical"对话框

    函数原型:

    QMessageBox::StandardButton QMessageBox::critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)

    参数含义和1类似。

    5."about"对话框

    函数原型:

    void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)

    参数含义和1类似,只是没有按钮。

    6."aboutQt"对话框

    函数原型:

    void QMessageBox::aboutQt(QWidget *parent, const QString &title = QString())

    参数含义和1类似,只是没有按钮和标题。

    7.自定义消息对话框

    以上介绍对话框都是固定的方式呈现的,缺乏灵活性,有时候也可以根据需要自定义消息对话框。如:

    1. QMessageBox msgBox;
    2. msgBox.setWindowTitle("message box");
    3. msgBox.setText(tr("message boxt test"));
    4. msgBox.setInformativeText(tr("Yes or No?"));
    5. msgBox.setDetailedText(tr("detail"));
    6. msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
    7. msgBox.setDefaultButton(QMessageBox::Yes);
    8. msgBox.setModal(true);
    9. int ret = msgBox.exec();
    10. switch (ret) {
    11. case (QMessageBox::Yes): {
    12. qDebug() << "Yes";
    13. break;
    14. }
    15. case (QMessageBox::No): {
    16. qDebug() << "No";
    17. break;
    18. }
    19. default:{break;}
    20. }

    更多的QMessageBox方法可以参见Qt的Help文档,这里就不细说了。

    显示效果如图:

    总结,本文介绍了Qt消息对话框的使用。

  • 相关阅读:
    代码审计-4 代码执行漏洞
    通过 DevOps、CI/CD 和容器增强您的软件开发之旅...
    为什么方法断点那么慢
    二分查找【数组】
    学1000G课程后总结:如何从零做一个抖音账号并顺利变现?大纲篇
    MT8665 Android 5.1 I2C驱动,非DMA方式,无法读写超过8个字节的问题的修改
    【FreeRTOS(四)】显示任务详细信息
    Mysql数据库 2.SQL语言 数据类型与字段约束
    【Java21天挑战赛】多线程
    【Vue 开发实战】生态篇 # 19:Vue Router的使用场景
  • 原文地址:https://blog.csdn.net/propor/article/details/133942604