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) //如果選擇保存文件,則執行保存操作

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