1 /*!
2 * @class frmMessageBox
3 * @brief des
4 * this is class which is a information widget
5 * this widget provide, three types, by func frmMessageBox::SetMessage:
6 * (1)information dialog
7 * (2)question dialog
8 * (3)error dialog
9 * @author lee
10 */
11 #include "frmmessagebox.h"
12 #include "ui_frmmessagebox.h"
13 #include <QFontDatabase>
14 #include <QDesktopWidget>
15 #include <QMouseEvent>
16 #include <QFont>
17 #include <QFontDatabase>
18 #include <QDebug>
19
frmMessageBox(QWidget * parent)20 frmMessageBox::frmMessageBox(QWidget *parent) :
21 QDialog(parent),
22 ui(new Ui::frmMessageBox)
23 {
24 ui->setupUi(this);
25 show_title();//title settting
26 FormInCenter();//make this widget is center in desktop
27 this->mousePressed = false;//for widget drag move
28 setWindowFlags(this->windowFlags()|Qt::FramelessWindowHint);
29 setAttribute(Qt::WA_DeleteOnClose);//this widget will delete when close
30
31 connect(ui->btnMenu_Close, SIGNAL(clicked()), this, SLOT(close()));
32 connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close()));
33
34 }
35
~frmMessageBox()36 frmMessageBox::~frmMessageBox()
37 {
38 delete ui;
39 }
show_title()40 void frmMessageBox::show_title()
41 {
42 int fontId = QFontDatabase::addApplicationFont(":/fonts/fontawesome-webfont.ttf");
43 QString fontName = QFontDatabase::applicationFontFamilies(fontId).at(0);
44 QFont iconFont = QFont(fontName);
45 iconFont.setPointSize(10);
46 ui->btnMenu_Close->setFont(iconFont);
47 ui->btnMenu_Close->setText(QChar(0xf00d));
48 iconFont.setPointSize(12);
49 ui->lab_Ico->setFont(iconFont);
50 ui->lab_Ico->setText(QChar(0xf015));
51 ui->lab_Title->setFont(iconFont);
52 }
53
FormInCenter()54 void frmMessageBox::FormInCenter()
55 {
56 int frmX = this->width();
57 int frmY = this->height();
58 QDesktopWidget w;
59 int deskWidth = w.width();
60 int deskHeight = w.height();
61 QPoint movePoint(deskWidth / 2 - frmX / 2, deskHeight / 2 - frmY / 2);
62 this->move(movePoint);
63 }
SetMessage(const QString & msg,int type)64 void frmMessageBox::SetMessage(const QString &msg, int type)
65 {
66 if (type == 0) {
67 ui->labIcoMain->setStyleSheet("border-image: url(:/images/messageBoxIcons/info.png);");
68 ui->btnCancel->setVisible(false);
69 ui->lab_Title->setText("提示");
70 } else if (type == 1) {
71 ui->labIcoMain->setStyleSheet("border-image: url(:/images/messageBoxIcons/question.png);");
72 ui->lab_Title->setText("询问");
73 } else if (type == 2) {
74 ui->labIcoMain->setStyleSheet("border-image: url(:/images/messageBoxIcons/error.png);");
75 ui->btnCancel->setVisible(false);
76 ui->lab_Title->setText("错误");
77 }
78
79 ui->labInfo->setText(msg);
80 }
81
on_btnOk_clicked()82 void frmMessageBox::on_btnOk_clicked()
83 {
84 done(1);
85 this->close();
86 }
87
mouseMoveEvent(QMouseEvent * e)88 void frmMessageBox::mouseMoveEvent(QMouseEvent *e)
89 {
90 if (mousePressed && (e->buttons() && Qt::LeftButton)) {
91 this->move(e->globalPos() - mousePoint);
92 e->accept();
93 }
94 }
95
mousePressEvent(QMouseEvent * e)96 void frmMessageBox::mousePressEvent(QMouseEvent *e)
97 {
98 if (e->button() == Qt::LeftButton) {
99 mousePressed = true;
100 mousePoint = e->globalPos() - this->pos();
101 e->accept();
102 }
103 }
104
mouseReleaseEvent(QMouseEvent *)105 void frmMessageBox::mouseReleaseEvent(QMouseEvent *)
106 {
107 mousePressed = false;
108 }
109