程序员开发实例大全宝库

网站首页 > 编程文章 正文

从零开始学Qt(41):QMessageBox消息对话框的使用

zazugpt 2024-10-14 20:13:12 编程文章 14 ℃ 0 评论

QMessageBox消息框的主要静态函数的功能如下:

  • StandardButton information() 信息提示对话框
  • StandardButton question() 询问并获取是否确认的对话框
  • StandardButton waming() 警告信息提示对话框
  • StandardButton critical() 错误信息提示对话框
  • void about() 设置自定义信息的关于对话框
  • void aboutQt() 关于Qt的对话框

简单信息提示

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

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

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

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

StandardButton是各种按钮的定义,如Ok、Yes、No、Cancel等,其枚举取值是QMessageBox::Ok、 QMessageBox::Cancel、QMessageBox::Close 等,详见 Qt 帮助文档中的 StandardButton 类型的说明。

对于warning()、information()、critical()和about()这几种对话框,它们一般只有一个OK按钮, 且无须关心对话框的返回值。所以,使用缺省的按钮设置即可。例如,下面是程序中调用 QMessageBox信息显示的代码,显示的几个对话框如图所示。

void Widget::on_btnMsgInformation_clicked()
{
  //information
  QString dlgTitle="information 消息框";
  QString strInfo="文件已经打开,字体大小己设置";
  QMessageBox::information(this, dlgTitle, strInfo, QMessageBox::Ok,QMessageBox::NoButton);
}
void Widget::on_btnMsgWarning_clicked()
{
  //warning
  QString dlgTitle="warning 消息框";
  QString strlnfo="文件内容已经被修改";
  QMessageBox::warning(this, dlgTitle, strlnfo);
}
void Widget::on_btnMsgCritical_clicked()
{
  // critical
  QString dlgTitle="critical 消息框";
  QString strlnfo="有不明程序访问网络";
  QMessageBox::critical(this, dlgTitle, strlnfo);
}

关于对话框

about()对话框的输入参数和使用方法与warning()相同,示例如下:

void Widget::on_btnMsgAbout_clicked()
{
  // about
  QString dlgTitle="about 消息框";
  QString strlnfo="软件V1.0 \n保留所有版权";
  QMessageBox::about(this, dlgTitle, strlnfo);
}

aboutQt()显示一个关于 Qt 的简单消息框,具有给定的标题并在父级上居中(如果父级不是nullptr)。该消息包括应用程序正在使用的Qt版本号,示例如下:

void Widget::on_btnMsgAboutQt_clicked()
{
  // aboutQt
  QString dlgTitle="aboutQt 消息框";
  QMessageBox::aboutQt(this, dlgTitle);
}

确认选择对话框

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

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

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

question()对话框的关键是在其中可以选择显示多个按钮,例如同时显示Yes、No、OK或 Cancel。其返回结果也是一个StandardButton类型变量,表示哪个按钮被单击了。下面是产生如图所示对话框的代码,并根据对话框选择结果进行了判断和显示。

void Widget::on_btnMsgQuestion_clicked()
{
  QString dlgTitle="Question 消息框";
  QString strlnfo="文件己被修改,是否保存修改?";
  QMessageBox::StandardButton defaultBtn=QMessageBox::NoButton;
  QMessageBox::StandardButton result;//返回选择的按钮
  result=QMessageBox::question(this, dlgTitle, strlnfo,
  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 消息框:无选择");
  }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表