#include "MessageBox.h"QString MessageBox::GetButtonText (QMessageBox::StandardButton standar)
{switch(standar)
{caseQMessageBox::Ok:return QString("确 定");caseQMessageBox::Cancel:return QString("取 消");caseQMessageBox::Abort:return QString("终 止");caseQMessageBox::Retry:return QString("重 试");caseQMessageBox::Ignore:return QString("忽 略");caseQMessageBox::Yes:return QString("是");caseQMessageBox::No:return QString("否");default:return QString("OK");
}
}
QMapMessageBox:: GetButton(MessageBoxButtons type)
{
QMapmap;switch(type)
{case MessageBoxButtons(0):default:
map.insert (GetButtonText(QMessageBox::Ok),QMessageBox::Ok);break;case MessageBoxButtons(1):
map.insert (GetButtonText(QMessageBox::Ok),QMessageBox::Ok);
map.insert (GetButtonText(QMessageBox::Cancel),QMessageBox::Cancel);break;case MessageBoxButtons(2):
map.insert (GetButtonText(QMessageBox::Abort),QMessageBox::Abort);
map.insert (GetButtonText(QMessageBox::Retry),QMessageBox::Retry);
map.insert (GetButtonText(QMessageBox::Ignore),QMessageBox::Ignore);break;case MessageBoxButtons(3):
map.insert (GetButtonText(QMessageBox::Yes),QMessageBox::Yes);
map.insert (GetButtonText(QMessageBox::No),QMessageBox::No);
map.insert (GetButtonText(QMessageBox::Cancel),QMessageBox::Cancel);break;case MessageBoxButtons(4):
map.insert (GetButtonText(QMessageBox::Yes),QMessageBox::Yes);
map.insert (GetButtonText(QMessageBox::No),QMessageBox::No);break;case MessageBoxButtons(5):
map.insert (GetButtonText(QMessageBox::Retry),QMessageBox::Retry);
map.insert (GetButtonText(QMessageBox::Cancel),QMessageBox::Cancel);break;
}returnmap;
}void MessageBox:: Show(const QString & content, const QString &caption, MessageBoxButtons button,
MessageBoxIcon icon)
{
QMessageBox::Icon con;switch(icon)
{case MessageBoxIcon(0):
con=QMessageBox::NoIcon;break;case MessageBoxIcon(1):case MessageBoxIcon(5):case MessageBoxIcon(6):
con=QMessageBox::Critical;break;case MessageBoxIcon(2):
con=QMessageBox::Question;break;case MessageBoxIcon(3):case MessageBoxIcon(7):
con=QMessageBox::Warning;break;default:
con=QMessageBox::Information;break;
}
QMap ms =GetButton(button);
QMessageBox box(con, caption, content);int size =ms.size ();switch(size)
{case 1:
box.setStandardButtons (ms.first ());
box.setButtonText (ms.values().at (0),ms.keys ().at (0));break;case 2:
box.setStandardButtons (ms.first ()|ms.last ());
box.setButtonText (ms.values().at (0),ms.keys ().at (0));
box.setButtonText (ms.values().at (1),ms.keys ().at (1));break;case 3:
box.setStandardButtons (ms.values ().at (0)|ms.values ().at (1)|ms.values ().at (2));
box.setButtonText (ms.values().at (0),ms.keys ().at (0));
box.setButtonText (ms.values().at (1),ms.keys ().at (1));
box.setButtonText (ms.values().at (2),ms.keys ().at (2));break;
}
box.exec ();
}void MessageBox:: Show(const QString & content, const QString &caption, MessageBoxButtons button)
{
Show(content,caption,button,MessageBoxIcon(0));
}void MessageBox:: Show(const QString & content, const QString &caption)
{
Show(content,caption,MessageBoxButtons(0));
}void MessageBox:: Show(const QString &content)
{
Show(content," ");
}