Qt下QMessageBox使用

int i=QMessageBox::warning(this,"QMessageBox","Thedocumentcontainsunsavedchanges\n"
"Do you want to save the changes before exiting?",
tr("確定"),tr("不確定"),tr("取消"));

運行後,按相應的按鈕,i的返回值分別爲0,1,2;然後你可根據相應的返回值,進行自己的操作;
當然,別忘了在main()中加上對中文的支持:
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

注:Qt提供了五個類似的static接口,我們使用類名就可以訪問,如:QMessageBox::information()、QMessageBox::critical()、QMessageBox::about()等,用於顯示類似的窗口,但是最多隻支持三個按鈕;
若想支持多個按鈕,就不能使用這幾個static的函數,需要自定義QMessagebox來使用:

QMessageBox msgBox;

msgBox.setIcon(QMessageBox::Warning);
msgBox.setWindowTitle(tr("警告!"));
msgBox.setText(tr("警告,請正確選擇!"));
QPushButton *Button1 = msgBox.addButton(tr("確定"),QMessageBox::AcceptRole);
QPushButton *Button2 = msgBox.addButton(tr("取消"),QMessageBox::RejectRole);
QPushButton *Button3 = msgBox.addButton(tr("是"),QMessageBox::YesRole);
QPushButton *Button4 = msgBox.addButton(tr("否"),QMessageBox::NoRole);
msgBox.exec();
然後

if (msgBox.clickedButton() == Button1)
{
//do...
}
else if (msgBox.clickedButton() == Button2)
{
//do...

}
.........
發佈了20 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章