qt如何弹出提示框?QMessageBox 消息对话框设置

Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面程序,可以说,Qt 是应用程序开发的一站式解决方案,那qt如何弹出提示框?下面来我们就来给大家讲解一下。

消息对话框 QMessageBox 用于显示提示、警告、错误等信息,或进行确认选择,由几个静态函数实现这些功能。其中 warning()、information()、critical() 和 about() 这几个函数的输入参数和使用方法相同,只是信息提示的图标有区别。

例如,warning() 的函数原型是:

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

其中,parent 是对话框的父窗口,指定父窗口之后,打开对话框时,对话框将自动显示在父窗口的上方中间位置;title 是对话框标题字符串;text 是对话框需要显7K的信息字符串;buttons 是对话框提供的按钮,缺省只有一个 OK 按钮;defaultButton 是缺省选择的按钮,缺省表示没有选择。

warning() 函数的返回结果是 StandardButton 类型。对话框上显示的按钮和缺省选中按钮也是 StandardButton 类型。

StandardButton 是各种按钮的定义,如 OK、Yes、No、Cancel 等,其枚举取值是 QMessageBox::Ok、QMessageBox::Cancel、QMessageBox::Close 等。

详见 Qt 帮助文档中的StandardButton 类型的说明。

对于 warning()、information()、critical() 和 about() 这几种对话框,它们一般只有一个 OK 按钮,且无须关心对话框的返回值。所以,使用缺省的按钮设置即可。

qt如何弹出提示框?QMessageBox 消息对话框设置.jpg

例如,下面是程序中调用 QMessageBox 信息显示的代码(显示的几个对话框如图所示):

void Dialog::on_btnMsgInformation_clicked()
{
    QString dlgTitle = "information消息框";
    QString strInfo = "文件已经打开,字体大小已设置";
    QMessageBox::information(this, dlgTitle, strInfo
        , QMessageBox::Ok, QMessageBox::NoButton);
}
void Dialog::on_btnMsgWarning_clicked()
{
    QString dlgTitle = "warning 消息框";
    QString strInfo = "文件内容已经被修改";
    QMessageBox::warning(this, dlgTitle, strInfo);
}
void Dialog::on_btnMsgCritical_clicked()
{
    QString dlgTitle = "critical消息框";
    QString strInfo = "有不明程序访问网络";
    QMessageBox::critical(this, dlgTitle, strInfo);
}
void Dialog::on_btnMsgAbout_clicked()
{
    QString dlgTitle = "about消息框";
    QString strInfo = "我开发的数据查看软件 V1.0 \n 保留所有版权";
    QMessageBox::about(this, dlgTitle, strInfo);
}

确认选择对话框

QMessageBox::question() 函数用于打开一个选择对话框,提示信息,并提供 Yes、No、OK、Cancel 等按钮,用户单击某个按钮返回选择,如常见的文件保存确认对话框如图所示。

1.jpg

静态函数 QMessageBox::question() 的原型如下:

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

question() 对话框的关键是在其中可以选择显示多个按钮,例如同时显示 Yes、No、OK 或 Cancel() 其返回结果也是一个 StandardButton 类型变量,表示哪个按钮被单击了。

下面是产生如图所示对话框的代码,并根据对话框选择结果进行了判断和显示:

void Dialog::on_btnMsgQuestion_clicked()
{
    QString dlgTitle = "Question消息框";
    QString strInfo = "文件已被修改,是否保存修改?";
    QMessageBox::StandardButton defaultBtn = QMessageBox::NoButton; //缺省按钮
    QMessageBox::StandardButton result; //返回选择的按钮
    result = QMessageBox::question(this, dlgTitle, strInfo
        , QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel
        , defaultBtn);
    if (result == QMessageBox::Yes)
        ui - > plainTextEdit - > appendPlainText("Question消息框: Yes 被选择");
    else if (result == QMessageBox::No)
        ui - > plainTextEdit - > appendPlainText("Question消息框: No 被选择");
    else if (result == QMessageBox::Cancel)
        ui - > plainTextEdit - > appendPlainText("Question消息框: Cancel 被选择");
    else
        ui - > plainTextEdit - > appendPlainText("Question消息框: 无选择");
}

Qt 为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、信息提示和确认选择对话框、标准输入对话框等,用户无需再自己设计这些常用的对话框,这样可以减少程序设计工作量。

这样就完成了QMessageBox 消息对话框的设置,此消息对话框主要是用于显示提示、警告、错误等信息,我们感兴趣的话,可以自己设置一下哦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

git服务器是什么?git服务器如何搭建?

mybatis怎么执行sql?mybatis执行sql的方法

为什么qt创建的文件是乱码?qt程序文件怎么打包?