messagebox

1、最简单的
QMessageBox msgBox;
msgBox.setText(“The document has been modified.”);
msgBox.exec(); //call exec() to show the message.

这里写图片描述
2、升级版
QMessageBox msgBox;
msgBox.setText(“The document has been modified.”);
msgBox.setInformativeText(“Do you want to save your changes?”);
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save); //设置默认操作
int ret = msgBox.exec();
switch (ret) {
case QMessageBox::Save:
// Save was clicked
break;
case QMessageBox::Discard:
// Don’t Save was clicked
break;
case QMessageBox::Cancel:
// Cancel was clicked
break;
default:
// should never be reached
break;
}

这里写图片描述

//系统提供的按键
Qt提供的按键种类

不够用肿么办?想中文肿么办?
自定义按钮

QMessageBox msgBox;
QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);
QPushButton *loginButton = msgBox.addButton(QString::fromUtf8("登录"), QMessageBox::ActionRole);//指定名称,类型(暂时不知道这个类型有啥用)
msgBox.exec();

 if (msgBox.clickedButton() == connectButton) 
 {
         // connect
 } 
 else if (msgBox.clickedButton() == abortButton)
 {
         // abort
 }
 else
 {
         //login
 }

这里写图片描述

3、四种弹窗类型
QMessageBox supports four predefined message severity levels, or message types, which really only differ in the predefined icon they each show.
这里写图片描述

用法举例: //标题
int ret = QMessageBox::warning(this, tr(“My Application”),
tr(“The document has been modified.\n” //提示语
“Do you want to save your changes?”),
QMessageBox::Save | QMessageBox::Discard
| QMessageBox::Cancel, //按键选项
QMessageBox::Save); //默认选项

这里写图片描述

//最终解答
QMessageBox box;
box.setWindowTitle(tr(“警告”));
box.setIcon(QMessageBox::Warning);
box.setText(curFile + tr(“尚未保存,是否保存?”)); box.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
if(box.exec() == QMessageBox::Yes) //如果选择保存文件,则执行保存操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章