1 #include "titlebar.h"
2 #include <QVBoxLayout>
3 #include <QHBoxLayout>
4 #include <QPushButton>
5 #include <QCoreApplication>
6 #include <QLabel>
7
TitleBar(QWidget * parent)8 TitleBar::TitleBar(QWidget *parent) : QWidget(parent),m_bMayClose(true)
9 {
10 QHBoxLayout *pHLayout = new QHBoxLayout;
11 pHLayout->setContentsMargins(0,0,0,0);
12 QPushButton *pClose = new QPushButton("X");
13 //pClose->setFlat(true);
14 //pClose->setStyleSheet("border-image:url(:/resource/close.png); min-height: 30px; max-height:30px; min-width: 30px; max-width:30px");
15 connect(pClose, &QPushButton::clicked, this, [=](){
16 if(m_bMayClose)
17 {
18 if(topLevelWidget())
19 topLevelWidget()->hide();
20 qApp->processEvents();
21 qApp->quit();
22 }else{
23 emit showBoxWidget();
24 }
25 });
26
27
28 m_title = new QLabel("FORLINX EMBEDDED");
29 m_title->setStyleSheet("color: blue; font-size:18px");
30 QFont font;
31 font.setBold(true);
32 m_title->setFont(font);
33
34 m_version = new QLabel("Version: 0.0.1");
35 m_version->setStyleSheet("color: blue");
36
37 pHLayout->addWidget(m_title);
38 pHLayout->addStretch();
39 pHLayout->addWidget(m_version);
40 pHLayout->addSpacing(30);
41 pHLayout->addWidget(pClose);
42
43 QVBoxLayout *pVLayout = new QVBoxLayout(this);
44 QFrame *pLine = new QFrame;
45 pLine->setFrameShape(QFrame::HLine);
46 pLine->setLineWidth(2);
47 pLine->setFrameShadow(QFrame::Raised);
48 pLine->setAutoFillBackground(true);
49 pVLayout->addLayout(pHLayout);
50 pVLayout->addWidget(pLine);
51 pVLayout->setContentsMargins(10, 10, 10, 0);
52 pVLayout->setSpacing(10);
53
54 }
55
setAppMayClose(bool bMay)56 void TitleBar::setAppMayClose(bool bMay)
57 {
58 m_bMayClose = bMay;
59 }
60
setVersion(const QString & version)61 void TitleBar::setVersion(const QString &version)
62 {
63 m_version->setText(version);
64
65 }
66
showTitlebarName(const QString & name)67 void TitleBar::showTitlebarName(const QString &name)
68 {
69
70 m_title->setText("Forlinx Embedded-"+ name);
71
72 }
73