QT5 常用基本对话框的使用

QT中常用的消息对话框包括:

类别作用
Question询问类消息框,包含是或否
Information提示类消息框,仅包含确定
Warning警告类消息框,伴随系统警告音,包含多个按钮
Critical错误类消息框,伴随系统错误提示音
About关于产品类消息框
Custom自定义消息框

消息框基本样式展示

在这里插入图片描述

注:使用消息框,需要在.h中的private slots中声明消息框的函数,在.cpp中将函数完整声明代码内容,并在需要弹出消息框的位置进行调用。

具体实现方案如下:


Question消息框

构造函数:

StandardButton QMessageBox::question
(
  QWidget* parent,                                   //消息框的父窗口指针
  const QString& title,                               //消息框的标题栏
  const QString& text,                                //消息框的文字提示信息
  StandardButtons buttons=Ok,                         //注(1)
  StandardButton defaultButton=NoButton             //注(2)
);

实现方法

void Dialog::showQuestionMsg()
{
    label->setText(tr("Question Message Box"));
    switch(QMessageBox::question(this,tr("提示"),
          tr("文档将最小化显示,是否继续?"),
          QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok))
    {
    case QMessageBox::Ok:
        label->setText("Question button/Ok");
        break;
    case QMessageBox::Cancel:
        label->setText("Question button/Cancel");
        break;
    default:
        break;
    }
    return;
}


Information消息框

构造函数

StandardButton QMessageBox::information
(
  QWidget*parent,                     //消息框的父窗口指针
  const QString& title,             //消息框的标题栏
  const QString& text,               //消息框的文字提示信息
  StandardButtonsbuttons=Ok,        //同Question消息框的注释内容
  StandardButton defaultButton=NoButton  //同Question消息框的注释内容
);

实现方法

void Dialog::showInformationMsg()
{
    label->setText(tr("Information Message Box"));
    QMessageBox::information(this,tr("检查更新"),
                             tr("该软件已是最新版本"));
    return;
}

Warning消息框

构造函数

StandardButton QMessageBox::warning
(
  QWidget* parent,                           //消息框的父窗口指针
  const QString& title,                      //消息框的标题栏
  const QString& text,                       //消息框的文字提示信息
  StandardButtonsbuttons=Ok,              //同Question消息框的注释内容
  StandardButton defaultButton=NoButton    //同Question消息框的注释内容
);

实现方法

void Dialog::showWarningMsg()
{
    label->setText(tr("Warning Message Box"));
    switch(QMessageBox::warning(this,tr("提示"),
         tr("您修改的内容还未保存,是否要保存对文档的修改?"),
         QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,
         QMessageBox::Save))
    {
    case QMessageBox::Save:
        label->setText(tr("Warning button/Save"));
        break;
    case QMessageBox::Discard:
        label->setText(tr("Warning button/Discard"));
        break;
    case QMessageBox::Cancel:
        label->setText(tr("Warning button/Cancel"));
        break;
    default:
        break;
    }
    return;
}

Critical消息框

构造函数

StandardButton QMessageBox::critical
(
  QWidget* parent,                        //消息框的父窗口指针
  const QString& title,                   //消息框的标题栏
  const QString& text,                   //消息框的文字提示信息
  StandardButtonsbuttons=Ok,           //同Question消息框的注释内容
  StandardButton defaultButton=NoButton  //同Question消息框的注释内容
);

实现方法

void Dialog::showCriticalMsg()
{
	label->setText(tr("Critical Message Box"));
	QMessageBox::critical(this,tr("错误"),tr("文件路径错误,请重新选择!"));
	return;
}

About消息框

构造函数

void QMessageBox::about
(
  QWidget* parent,             //消息框的父窗口指针
  const QString& title,           //消息框的标题栏
  const QString& text          //消息框的文字提示信息
);

实现方法

void Dialog::showAboutMsg()
{
	label->setText(tr("About Message Box"));
	QMessageBox::about(this,tr("关于软件"),tr("V4.31 已是最新版本 ©Copyright 2019 iXiaochu"));
	return;
}

About Qt消息框

构造函数

void QMessageBox::aboutQt
(
  QWidget* parent,                   //消息框的父窗口指针
  const QString& title=QString()        //消息框的标题栏
);

实现方法

void Dialog::showAboutQtMsg()
{
    label->setText(tr("About Qt Message Box"));
    QMessageBox::aboutQt(this,tr("About Qt消息框"));
    return;
}

注:文中代码是在QDialog中编写,且不勾选生成ui界面,如果用UI编辑器的方式添加,则需要把label改为ui->label。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值