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;
}
//系統提供的按鍵
不夠用腫麼辦?想中文腫麼辦?
自定義按鈕
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) //如果選擇保存文件,則執行保存操作