Qt弹窗之——标准消息对话框

总述

QT的QMessageBox类提供了一个模式对话框,用于通知用户或询问用户问题并接收答案。

使用QMessageBox需要:

  • 添加库QT += widgets
  • 包含相关头文件#include <QMessageBox>
    通过查看QT官方文档找到QMessageBox的静态成员函数,可以看到其函数声明。
返回值函数名及参数
voidabout(QWidget *parent, const QString &title, const QString &text)
voidaboutQt(QWidget *parent, const QString &title = QString())
QMessageBox::StandardButtoncritical(QWidget *parent,const QString &title,const QString &text,QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton= NoButton)
QMessageBox::StandardButtoninformation(QWidget *parent,const QString &title,const QString &text,QMessageBox::StandardButtons buttons = Ok,QMessageBox::StandardButton defaultButton= NoButton)
QMessageBox::StandardButtonquestion(QWidget *parent,const QString &title,const QString &text,QMessageBox::StandardButtons buttons =StandardButtons(Yes&#124No),QMessageBox::StandardButton defaultButton= NoButton)
QMessageBox::StandardButtonwarning(QWidget *parent,const QString &title,const QString &text,QMessageBox::StandardButtons buttons = Ok,QMessageBox::StandardButton defaultButton= NoButton)

总的来说,标准消息对话框QMessageBox类有六种消息框。

静态函数函数说明
QMessageBox::questionQuestion消息框
QMessageBox::informationInformation消息框
QMessageBox::warningWarning消息框
QMessageBox::criticalCritical消息框
QMessageBox::aboutAbout消息框
QMessageBox::aboutQtAboutQt消息框

标准按钮的标志QMessageBox::StandardButton

内容描述
QMessageBox::OkAcceptRole定义的“确定”按钮。
QMessageBox::OpenAcceptRole定义的“打开”按钮。
QMessageBox::SaveAcceptRole定义的“保存”按钮。
QMessageBox::CancelRejectRole定义的“取消”按钮。
QMessageBox::CloseRejectRole定义的“关闭”按钮。
QMessageBox::DiscardDestructiveRole定义的“放弃”或“不保存”按钮。
QMessageBox::ApplyApplyRole定义的“应用”按钮。
QMessageBox::ResetResetRole定义的“重置”按钮。
QMessageBox::RestoreDefaultsResetRole定义的“恢复默认值”按钮。
QMessageBox::HelpHelpRole定义的“帮助”按钮。
QMessageBox::SaveAllAcceptRole定义的“全部保存”按钮。
QMessageBox::YesYesRole定义的“是”按钮。
QMessageBox::YesToAllYesRole定义的“全部同意”按钮。
QMessageBox::NoNoRole定义的“否”按钮。
QMessageBox::NoToAllNoRole定义的“全部拒绝”按钮。
QMessageBox::AbortRejectRole定义的“中止”按钮。
QMessageBox::RetryAcceptRole定义的“重试”按钮。
QMessageBox::IgnoreAcceptRole定义的“忽略”按钮。
QMessageBox::NoButton无效的按钮。

消息严重级别

Question用于在正常操作期间提出问题。
Information用于报告有关正常操作的信息。
Warning用于报告非严重错误。
Critical用于报告严重错误。

Question消息框

函数声明:

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

示例代码:

 QMessageBox::question(this, 
        tr("弹窗标题"),
        tr("弹窗内容"),
        QMessageBox::Ok | QMessageBox::Cancel, 
        QMessageBox::Ok);

效果:

Question消息框

解释:

  • 第四个参数buttons指要添加的标准按钮,置为QMessageBox::Ok | QMessageBox::Cancel表示添加确认键和取消键。
  • 第五个参数defaultButton指定按下Enter键时使用的按钮,若为QMessageBox::NoButton则QMessageBox自动选择一个合适的默认值。。
  • 函数返回类型为QMessageBox::StandardButton,可通过返回值知道用户按下了哪个按钮,以此作为后续操作依据。

Information消息框

Information消息框具有和Question消息框一样的参数和返回值,其使用方法和解释都是一样的。

QMessageBox::information(this, 
    tr("Information消息框标题"), 
    tr("这是Information消息框的内容。"),
    QMessageBox::Ok | QMessageBox::Cancel, 
    QMessageBox::Ok);

Information消息框

Warning消息框

Warning消息框同上。

    QMessageBox::warning(this, 
        tr("Warning消息框"),
        tr("您修改的内容还未保存,是否要保存对文档的修改?"),
        QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel,
        QMessageBox::Save);

Warning消息框

Critical消息框

Critical消息框同上。
在调用时,如果不指定后两个参数,即设置按钮和设置按下时的默认按钮。系统会默认指定。(上述四个消息框都一样。)

QMessageBox::critical(this, tr("Critical消息框"), tr("这是一个Critical消息框!"));

Critical消息框

About消息框

About消息框只能指定消息标题和内容,不能设置按钮。
它的函数声明:

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

QMessageBox::about(this, tr("About消息框"), tr("这是一个About消息框测试!"));

About消息框

AboutQt消息框

AboutQt消息框显示了应用程序正在使用的Qt的版本号等信息。
它只能指定标题。其函数声明:

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

QMessageBox::aboutQt(this, tr("About Qt消息框"));

aboutQT.png

总结

消息框显示用于向用户发出警报的主要文本,用于进一步说明警报或询问用户问题的信息性文本,以及用于在用户需要时提供更多数据的可选详细文本

  • 48
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值