From 56ce2fe5982c7a9207dd31ee4931c382e5a4d1ed Mon Sep 17 00:00:00 2001
From: wanghaoyu <1580258873@qq.com>
Date: Thu, 27 Feb 2025 16:51:14 +0800
Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=96=B0=E5=A2=9E=E5=BA=94?=
 =?UTF-8?q?=E7=94=A8=E5=9C=BA=E6=99=AF=E5=88=86=E7=B1=BB=EF=BC=8C=E7=99=BB?=
 =?UTF-8?q?=E9=99=86=E9=A1=B5=E9=9D=A2=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=BA=93?=
 =?UTF-8?q?=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 PayloadAPP.pro                   |   3 +
 SDFPDlg.cpp                      |  43 +++
 SDFPDlg.h                        |  11 +
 SDFPDlg.ui                       | 143 ++++++--
 Src/GDDC/gddcSet.cpp             |   4 +
 Src/UserManage/UserManage.pri    |  13 +
 Src/UserManage/img/eyesOpen.png  | Bin 0 -> 7673 bytes
 Src/UserManage/img/eyesOpen1.png | Bin 0 -> 8320 bytes
 Src/UserManage/mydatabase.cpp    | 243 +++++++++++++
 Src/UserManage/mydatabase.h      |  51 +++
 Src/UserManage/res.qrc           |   6 +
 Src/UserManage/userlogin.cpp     | 230 +++++++++++++
 Src/UserManage/userlogin.h       |  55 +++
 Src/UserManage/userlogin.ui      | 573 +++++++++++++++++++++++++++++++
 mainwindow.cpp                   | 176 ++++++++--
 mainwindow.h                     |  14 +
 mainwindow.qrc                   |   6 +
 mainwindow.ui                    | 328 ++++++++++--------
 res/eye1.png                     | Bin 0 -> 7309 bytes
 res/eye2.png                     | Bin 0 -> 6720 bytes
 res/eye3.png                     | Bin 0 -> 6734 bytes
 res/eyec1.png                    | Bin 0 -> 5325 bytes
 res/eyesOpen.png                 | Bin 0 -> 7673 bytes
 res/eyesOpen1.png                | Bin 0 -> 8320 bytes
 24 files changed, 1701 insertions(+), 198 deletions(-)
 create mode 100644 Src/UserManage/UserManage.pri
 create mode 100644 Src/UserManage/img/eyesOpen.png
 create mode 100644 Src/UserManage/img/eyesOpen1.png
 create mode 100644 Src/UserManage/mydatabase.cpp
 create mode 100644 Src/UserManage/mydatabase.h
 create mode 100644 Src/UserManage/res.qrc
 create mode 100644 Src/UserManage/userlogin.cpp
 create mode 100644 Src/UserManage/userlogin.h
 create mode 100644 Src/UserManage/userlogin.ui
 create mode 100644 res/eye1.png
 create mode 100644 res/eye2.png
 create mode 100644 res/eye3.png
 create mode 100644 res/eyec1.png
 create mode 100644 res/eyesOpen.png
 create mode 100644 res/eyesOpen1.png

diff --git a/PayloadAPP.pro b/PayloadAPP.pro
index fa49862..0f06328 100644
--- a/PayloadAPP.pro
+++ b/PayloadAPP.pro
@@ -1,6 +1,7 @@
 QT       += core gui webenginewidgets
 QT       += network
 QT       += quickwidgets qml
+QT       += sql
 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
 CONFIG += c++17
@@ -59,6 +60,7 @@ INCLUDEPATH += $$PWD/3rdparty/ffmpeg/include \
                 $$PWD/Src/VideoGL/ \
                 $$PWD/Src/Video/ \
                 $$PWD/3rdparty/QNotify/include \
+                $$PWD/Src/UserManage \
 
 LIBS += -L$$PWD/3rdparty/ffmpeg/lib  \
         -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lpostproc \
@@ -87,3 +89,4 @@ include($$PWD/Src/RescueLoad/RescueLoad.pri)
 include($$PWD/Src/GDDC/GDDC.pri)
 include($$PWD/Src/Video/Video.pri)
 include($$PWD/Src/VideoGL/VideoGL.pri)
+include($$PWD/Src/UserManage/UserManage.pri)
diff --git a/SDFPDlg.cpp b/SDFPDlg.cpp
index c6a0a29..b4e993d 100644
--- a/SDFPDlg.cpp
+++ b/SDFPDlg.cpp
@@ -14,9 +14,52 @@ SDFPDlg::SDFPDlg(QWidget *parent)
     setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint);
     hide();
     ui->label_version->setText(g_SoftwareVersion);
+    initButton();
 }
 
 SDFPDlg::~SDFPDlg()
 {
     delete ui;
 }
+
+void SDFPDlg::initButton()
+{
+    ui->loginButton->setStyleSheet("QPushButton {"
+                                   "border: none;"                 // 没有边框
+                                   "color: #CFCFCF;"                 // 默认字体颜色为白色
+                                   "font-size: 18px;"              // 字体大小为 20
+                                   "font-weight: bold;"
+                                   "background-color: transparent;" // 背景透明
+                                   "font-family: 'STHeiti';"
+                                   "}"
+
+                                   // 设置按钮悬停时的样式
+                                   "QPushButton:hover {"
+                                   "color: #5289C1;"               // 悬停时字体颜色变为橙色
+                                   "}"
+
+                                   // 设置按钮按下时的字体颜色
+                                   "QPushButton:pressed {"
+                                   "color: #4A7DB0;"               // 按下时字体颜色变为绿色
+                                   "}"
+
+                                   // 设置按钮选中时的样式
+                                   "QPushButton:checked {"
+                                   "color: #5289C1;"               // 选中时字体颜色变为绿色
+                                   "}"
+                                    );
+}
+
+void SDFPDlg::resizeEvent(QResizeEvent *event)
+{
+    QWidget::resizeEvent(event);
+    // double weidgeteWidth = (double)(this->width());
+    // // 设置按钮位置和大小
+    // _loginBtn->move(weidgeteWidth - _loginBtn->width() - 20,20);
+}
+
+void SDFPDlg::on_loginButton_clicked()
+{
+    emit clickLoginBtn();
+}
+
diff --git a/SDFPDlg.h b/SDFPDlg.h
index c4b4cef..a3650ee 100644
--- a/SDFPDlg.h
+++ b/SDFPDlg.h
@@ -3,6 +3,7 @@
 
 #include <QWidget>
 #include "global.h"
+#include <QPushButton>
 
 namespace Ui {
 class SDFPDlg;
@@ -18,6 +19,16 @@ public:
 
 private:
     Ui::SDFPDlg *ui;
+    void initButton();
+    QPushButton* _loginBtn;
+protected:
+    void resizeEvent(QResizeEvent *event) override;
+private slots:
+    void on_loginButton_clicked();
+
+signals:
+    void clickLoginBtn();
+
 };
 
 #endif // SDFPDLG_H
diff --git a/SDFPDlg.ui b/SDFPDlg.ui
index d39cc04..a17c238 100644
--- a/SDFPDlg.ui
+++ b/SDFPDlg.ui
@@ -17,38 +17,8 @@
    <string notr="true"/>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="2">
-    <widget class="QWidget" name="widget" native="true">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="styleSheet">
-      <string notr="true">image: url(:/res/981csNew.png);</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="2">
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="label_version">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>版本号:V0.00.00</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="0" column="3">
-    <spacer name="horizontalSpacer_2">
+   <item row="1" column="0">
+    <spacer name="horizontalSpacer">
      <property name="orientation">
       <enum>Qt::Orientation::Horizontal</enum>
      </property>
@@ -63,8 +33,8 @@
      </property>
     </spacer>
    </item>
-   <item row="0" column="0">
-    <spacer name="horizontalSpacer">
+   <item row="1" column="2">
+    <spacer name="horizontalSpacer_2">
      <property name="orientation">
       <enum>Qt::Orientation::Horizontal</enum>
      </property>
@@ -79,6 +49,111 @@
      </property>
     </spacer>
    </item>
+   <item row="1" column="1">
+    <widget class="QWidget" name="widget" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="styleSheet">
+      <string notr="true">image: url(:/res/981csNew.png);</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0" colspan="3">
+    <widget class="QWidget" name="widget_2" native="true">
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>20</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16777215</width>
+       <height>40</height>
+      </size>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_2">
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <property name="spacing">
+       <number>0</number>
+      </property>
+      <item row="0" column="0">
+       <spacer name="horizontalSpacer_3">
+        <property name="orientation">
+         <enum>Qt::Orientation::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="0" column="2">
+       <spacer name="horizontalSpacer_4">
+        <property name="orientation">
+         <enum>Qt::Orientation::Horizontal</enum>
+        </property>
+        <property name="sizeType">
+         <enum>QSizePolicy::Policy::Fixed</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>30</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="0" column="1">
+       <widget class="QPushButton" name="loginButton">
+        <property name="maximumSize">
+         <size>
+          <width>40</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>登录</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="3" column="0" colspan="3">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="label_version">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>版本号:V0.00.00</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
   </layout>
  </widget>
  <resources/>
diff --git a/Src/GDDC/gddcSet.cpp b/Src/GDDC/gddcSet.cpp
index 484307b..97f4d3c 100644
--- a/Src/GDDC/gddcSet.cpp
+++ b/Src/GDDC/gddcSet.cpp
@@ -14,6 +14,10 @@ GDDCSet::GDDCSet(QWidget *parent) : QWidget(parent), ui(new Ui::GDDCSet) {
 
     ui->label_3->setVisible(false);
     ui->comboBox_streamType->setVisible(false);
+    QString urlFile = QCoreApplication::applicationDirPath() + "/config.ini";
+    std::unique_ptr<QSettings> configIni = std::make_unique<QSettings>(urlFile, QSettings::IniFormat);
+    QString podIp = configIni->value("Pod/IP").toString();
+    initPullURL(podIp);
 }
 
 GDDCSet::~GDDCSet() {
diff --git a/Src/UserManage/UserManage.pri b/Src/UserManage/UserManage.pri
new file mode 100644
index 0000000..47c06b5
--- /dev/null
+++ b/Src/UserManage/UserManage.pri
@@ -0,0 +1,13 @@
+HEADERS += \
+    $$PWD/mydatabase.h \
+    $$PWD/userlogin.h
+
+SOURCES += \
+    $$PWD/mydatabase.cpp \
+    $$PWD/userlogin.cpp
+
+RESOURCES += \
+    $$PWD/res.qrc
+
+FORMS += \
+    $$PWD/userlogin.ui
diff --git a/Src/UserManage/img/eyesOpen.png b/Src/UserManage/img/eyesOpen.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e50834912db47b271aa1efa265970030a37dd25
GIT binary patch
literal 7673
zcmds+<yRD3w1-7T=@0~IhVCv2fuS3Q?wkPumF@=V8XBY<UJ#@^B!{89LuBag5-#`8
zxc9?3=lQhP{&3b_zqOx84K;ZjOft+@uU_FOD#&QQyzu`$=x<-{pZZlfuU=7hE6RYh
zJx!0YePAZC*@LJ6bb2060vtqYlHt$bHzR%YTlswul%Vcb%{&4Cc0<80DH;?^W>Bmo
z3*K+E_f^ph7Wtm(?<Xm1D+4hW)6o>+zrL$JMaZ(FS`(F<%dvh(xxS!$Fl-taSveM8
z-O0(BF5RE$@F;nhUtKo~c(^+-JK<xOAPtJ?4n#jpsu@Cu0N%<03F+tKV!DCokl?NT
zgm-YjkQ<P0BV6(r^yoNTV;3yRsG#~jJ9;l%k}-n%o3O4bJ{(XUS>VF+?*-0!IR^j3
zc%1<h0K0OQP``kGGg4mw1SBkCj2i2|lm-&^;WbfIFuqiuk(q2s_kV%gKdDx;fFKpv
z4`z`M(|AED_!2A5l|O(m3{67W9m{(f7{+F}QJfATfEQ#}uxqR$@dE!xnu#phg$}3U
z1PqF<O`gpeIZ$?<bUwJZ|GQqk_m#-)P1zEEICS|)?YDl_HE^?ih;ME5SIFYN^P*`@
zXx;Zh7V=g4+TGt_y}^FIak0+kBu+coFnScglINdbz6DQ^KWSR`&yL8*Q&N{b-e_Ze
zY<^wfSJ25`8=-LjU2I&s;HtXwe!oP8iu&U-1ruT4>$a<d`4jbG(ZoFOc<$WT6EyvZ
z&o;16TYh|fi&Bh&nI2eOLh3nUcd_o)?4k91ptloK1F__ywxOjO330{2s$jf?U@6M;
zTXv|C{9;Z?sezEwX5Y8)<_3%(7?#={7QJD35$LMlCvN_`!3D9hBG*Fl+;Dn!U8af@
zjY81XjTL@koIhTS$1ipG+%Qf4A#G<mjZ-qt&9ChupQ<cE^Ft3(CW-2xP;#_$wv&e)
zA0J0nz8;kV*V(ezfZxfLmeliJV9B+0e-^gowBoV!va#72;GK5xFl+!SbmeS9B&jFA
zZ4jz<=|RBbuMLQK92PS^3s=^Cf?!AuH&J)=+g=iv=Fez>wz%!Joh8Wu{#XO?Qpud&
zDV*H?(~O#S7GV@1-D=ZSr*0Iq2>jBs|C-?Hz5pt^$f{31*J2`m_m^MKlGwOHX{7P5
zS;Y~~$a2@`eV#Z@yq+vgR21)I)!jTSN-;#AKT<=I(JNT&-{th*-R){A(hu7$ve5q^
zT*58!Hv=<i(Mb&G<X$I5{jFIyQJ92<7Ed&pEQ@L#@EzRqWj4|O<lLyleQ!;}8Afs;
zty4DD{d{qAUVtt<*@1`K)!%GMsqX0w3%uZ@`!*jRpAQs1hc&Do&g#y9cRa5ihqY6c
zK@ZtPAYVcv3#=6XpW@|xMtCB-c}Mb;ZrbXkcfE{X0AUHV2sBS9CZA%j%6Wdib%;3>
z0?p%xDBPi<2WZ*JD24$I|MNR)n6LUQ#8c+UJ2b&)h>S&fAlFJfv29OUR`?-akk|XB
zoc*0%4v<Z^lEmlqH(Eek)SYlQhtK&x@~IWcCGyK5W1HUZ7=-@wV<pX>m&RYddYkPK
zQ+Zl`_};_TzvTjF%D)b@N1^<lST<u>cRqv7#c!+mLHZdY!E@UWfh>HmTB=d<)XxlZ
zqJ!o2uALj{sx$Ef&-4ht65-5EwlRS<Z(8FX8UI-OzS<tWMBoTti3Vr~CD=PQfg!L)
zQ?#$XQvK@kl6~j#yRL=Z&1VHcyO}Zrer)O_QruS&A8T?Y61t_xdVD^|%=N2{==dYi
zYrn0w@_{Fg80sOSH2t&+XBydxJo=%NYXl@iunYFJ1+;GWf(!cviMt?shB(qrUcm1a
zV?ubemjroDcXh${VrIX+gX*qM*MS()Y8e%Kc!X(#-7F0nmFEV<uS`^T7v_cZh|o6b
zMGtN0f(}NoBrZ;AXI}+T>IPoa5itu%BS$tb6u}k3q(K*Sc}i{ZaRwM2M>gomFVsSq
zxI!r196i!V2yphzz+Uemx9Tv>)Dp@#JAyTdxq*Ere=Yfte)7H)<`=8AoOn_`MO$3o
zRQcz2lttJW3mg}_7&)sy+!s*8i#z;fAyL?*A2YdWnF<xa7*VGO=nGOsCTx=OOZ}+u
zrIq512Wm-InaRLbH6cdmuZ8)Oz3DGyj59sqkH^%{w}TH$i~IF5ei3iYHJ=ry3qOmK
zo`X*$J|x2JnrBK~gGun8vo*uS)>?@yjfXJdiJFtckw-)*+bngvVE!+-!lj3@gK5bf
z2puxeuE4;51gJmOG{y}fYi-X@4_qVC<r=WCgkB2hdza*kUGSLn<_x#yL(xj`h>`f?
zAH1|$R5MIaJ&J(!NP1h@NG=}wjNhS!amJ4`qv^4$kK2lrhj;C0#`S{}o^KK=&5?jA
z`MEA%@$oh)RQPc%Hc)y`aiBQ)!X7?N;9nM+UiFSnZiE9hdKbWBy(fVI<t*@e8(2}H
zx-B{OL%<$)u;?Eoj4~Gm?MUr|Fkx5Ztvb-gNr{B}FcD2D17{QyBtDB;*{UA7Dk;Yh
zVaxGMC@GcBzKh)-d+5Cm>j4;}wE+8ez*~wzh^{8@2BJGW#3@%wh$24H((%qZPk5JD
z?p>W#B0U+X49NGHhxnC@g|zf2pJzaN4`c2KAM?ec_DYLys+*}S@#|=a$aGu^)jSm_
zGj{6=%i4dFtRvu-33j2gO<xg>xn%Un48T}$p`W%-kFARa&*>@A%LQa#Q@RQ4a5VOp
zannHG9;y~x(f`IEfKeFjiA%`d7<lE@3~0*{PR7BA$^t8?!V2dn{;q)~<ygQOh5Jzv
zxiI}nhCj^o7)tmqmltQRtd0jizuD3K#~#LV(gj{~Q7TuBi-dpAz43Ldbak+FY>(a?
zbz!%B-VizVHCE6o|BYVjezfGlv(x-@qxqZx(^K^C=OM2Opgy>8+I}~1k|<wyht~R9
z7_yFCa?Y!{h(>YqX8O+Dn>53>+Cfgh47$Y=us>5CaGEkn!9@aMUco`1yIsCXV0&6l
z|MF><Ew9ouCVRXvJV_|U3ZYbIE^=PtOt|3Rm6x?Uxu_u?tt6iN-4*%$gw8{H{$37O
z4d3OLHEFP)P_R2U?xzHvy184ne=@u&EX5<*?FS_OWi%C+R@)3qRIqU3>hOF1w0rI5
z8jh8ai63M60{`5DdR+6H$u(9Cx#*Q*0K!$U4CzS4x9U+*b%9YAR~x~oSb&3a^Pi@Y
zoDe^%7K_%bTF$G;l?bf}V7dtPsOO0w>uscX#>CR6t=6EbXM@~Z=m1YIYr@}EXbCwD
zN6T7E7!BNm7LLoB_-78lde?xDRH6Re=ac1i=6iVAF3%W>E`?H6n)ncRRlq)c_iB+f
z&b^<9Xc9-od5m~}5=TuLcE={}0pE@qC>VbL28e238+hL>ub-7B-BF!i=3FbQh0~kl
zV-hN>1%3^AVBTrzyt`nGsA8uB|AgHx5HU#O)&a`zbRzh0&(W^%e_Ey;JjI<dR*f0$
znrlY1UjiL4rHxFE4faZz6-TD3(~fdJfJmqj5{L1iSsUM5dO2&oI_y%H!4&^pnssGp
zs@K(`EN@hBD)29gVQqLc+_o>2Jy&kq7_xugOgr9tsbN-m@1KMT7wmy}pE;aedB(rC
z&++LTe~Ngi8=w2;7oI1?wP~BJTtEK@rLzE_b9~rPc<Chwt@2>A59JCnSMMC1jsowd
zL3Kucf73|S;{dkrpECLJ+*H$?5ydd{?aPmZGHR;|hlB0%!o~bw795yYbX4Ge5y*7y
zvkmP|Jn+E7P+eM^)+Xl`aQ>$(V}xKaHx|RvujHgpxjTBvXVJSz#auXaFkdfM*}#F;
zgvp~k`OM2oXJadCECYB+Wmb9vTTPgj-mW)v%hoCqe9Ku|#75})s9>To5JUwkLbdhu
zn8(Z%>$??GCVA?2%=wd)mg+PS8}|<0H+a<&?woT%Fcb;2?zuN2aOC}4!oAw;kU?OT
z{zp@P`PcUQ6|5>G|9Mvk0fZBLZ)ME9dYr^Pd_`#T0oQj5gDAZA39Z(6r@O<U{cPaY
zcDm#r@>{Czof9qk>aq}j$v1}j^=Bbz7}nk=-H!wIMvmQGNqx`#0;v1<q&ucZWLywW
z!+8f=<^$HGj}lVyH1RTR*1uWA+?*IapV<<!+?QE)u97b*8Y2w|`&|EKzB}BaXHUsq
zervw1By>fkHax%2K&nfrH}}g9_=fybxtm*OH~()_2o=)RL}qd5y+!*GB3l3ygOix$
z*&=3i26lt6O0yBgINR;$vPpA}54)}snzVlV@TbaRwDY&z{6NfUsNk&e1u3oAry*YN
zM1#0m&bkKrUySIzxE$3jIUEvQm`^$;-4`rOn5|`B0#tt@WQ6&}_0%`dFDLS1i$O`k
zN(Av|zl&py(`?9*k9n%SUuE$PXBX@LQ>&sb=a+!~dsfL*X-;Oh*3WfL%$3I#-h$N)
z##5V>D_!+qam9EdQ}pVKj_Wfb*2HlZ-Fmnp<)xJ#9rnbYBw8Tp`OjalNz<C5tdwCD
z@W2Dc;T9c<qG@Uh^m82qi#%cDcqTwhbOyKOYeD0m`oC)W2@td8kN8`h=$q}57Hkr7
zAH5S?GW1psm>*a#-CZg^>H<(cw_v&n>)Ne`HXzJ1o^8Y)J`(lyV+}J(R$b<^#3LuD
z5d5twE7C=>!pPaaez~s<NU<uNB@PT)ANud`{?cfMg9dtktBSsg%K(?7%+!LPdeysM
zIiW+RK02&}rr!O^L#0W!K6VubtbBk;Tit_R^O>EaOA)Qfb>)z~Y6g)0^<iI$DI4va
z`nv<g1DV%o0CSG${r8zyNm8=BVZ}=;Zo)?yE2sKvY&=JkKl|qJUXqk9?zj;_U+>l?
zR2Lmr+1B}+VV;+7Yh}4ZaoS^EgWwX$gw^hXpnV`MH+U>o+dIvLk7IZ-5m*&ouse2A
zvfP@d09t-G-#c)qi%u}5<yUV>j`o!km%MUdXOj1jWx)!s0@<mq9L#;GFXQi~Ft~4F
z%p{?5qyMH#1BfWs!B0!F8N!y1F=!_?{F3Vid)8m>*1;GQbEX<@;w%j8Pj;F3+b#(3
z!hB^d66mOe`DF2s7CyJLbLl^4a{%reG>}hAYDY+10-2^9|E<sz4q;Pg4sY?q8-q;#
zEtoei;BN)Ib1dR$W)8-MSRz+LuetCx5KevJUxpQ%F#;bXaQ`e5Yugwptn~8?P%~#<
z<QFv(P0*|0O)2&wYxC+eoS*!_!H>8oR$sBk5n~oStCP#yy#f@UA}E;J2L-7<e2){|
zPPcj*7xWeF{dBY9a`LBOR6HC%b=*kB9nT_kM`!pn1>G83wZYQn;gKpBd%t*~1Z@bg
zh_#XdY;^n8?s!D2z!9cjIky+Kf`Pj~BF&EW3xU2=MWf5XxEC}1jK$!;qMP8A_$^x7
z>(7#a;`ng8&%BfAHb?cbQSnSF)HIB09kOfT7n2-$O!?)#sijT<<{Rf#=43ZMWP6E}
zED1LoyQHy#zuR-zQC-fE{kxO>#ytSej@=c_4%x1T9unuaKC38ccNTrBI9eCaqA95?
zNtu}KcLHjQH)7(Q5ki>9xiL7xW;Z`6Z*E6Q^Xrx|UfW`F9Ro-~o3T&r1AXG@dscPi
zCnmvp@o_>=>dO10+U?t;6PAjG6kfV8Ed9+6QFKvd0?Qa)9kqkO?WpgmfT8W<5ZA87
zmDN_>0o(;a7Y`!r#FsSR-~Z+xv7zq4>dnH&BEsXSAfYYHS*<B$J<f6W7{%2iReGtd
zW`HXDhd^U^f9<ST1r*N`-I)j|O4(BUAcAMa@BvjAjdB136Fv_fbNHw*F8__PJBq0O
zNdB8&7Ad3@r{=$q?3KfM3&*Trk+0kx5eF9UO#sv9eW}^4!&peCUF-BwNOe2GqcDSu
zLy@sSi&&d{3<*!;>ez`f@1e^k(VZxXTwIfr14N)tGt95*wSp~6eg6A-R7=J+L971u
zY1x*V9<q}tL$9pEbU976O4SZm!ya9V4-UC=0G_xCWTHzJ)-Gh5V4K#XxzE-{e|1ad
z-nnMqIn0M7_BY|jUGZYfBqKzgwDg6sQ$3}7Ga{B~&BfMVh<NAkSB|lt7zI++JF_7b
zBBIrCvY}n6M#4L@h=LYk$?NO6OtmQagVwCr-bLhZJ$42&v^ho{`>yJK=ezkDgHhq>
zl}F^vLxx3oO6l(juj`bZW#y>|$~|YULM=SY0pHeup1Xq7nJ~i~mjrRYVYTQ#b8b-F
zrjb=(tIS{qMY(`^jx<~OfL9z+1?KxE(<D>A*eF7xMzhMix9*XsD6QI@Tt;9+YmDd%
zA|%}HGu?sc-eyUgtCRaIj~eqdtIz5J#JQ+#f-4f)*Tarv4XCQn84YCk+X=_^YY>_L
z^PiL1f&C6uAAXVAyyQA&bI1>wCQag4sm`~pL<$^FxibP2tXNi;L(HaM+^H@IY;edm
znM!`qKr3Z*)JiiO-cERY2nax5p>pY{GtzCT?zmnW!d@QZc6SnQ7P6^GqaK`W`^lp3
zQ7A9;Akv!ndkNAdtR*X0+2IY7+k|a#5_C-v=BL26l4TSM9$MV|PMODRujA(`B6$wZ
zB%rglY`NzjYYS@xxio_-t}_ST9iz50otbooWb5Lg4coIa9?=e_^H@O~_bl0$jV}j3
z1JurDjc9_?MOz){F6MCO?|FRQ5y{L;x7~g@=djQBWY2%%^O|LyTz^k6^8|0*-630M
zgD+*6kZoX8`tK`=aXI6kIC-z!$sYg5C4(O%-=87fe<x^`{f+$V>rSlT)oz&8SJ4!U
zq{f2`RPqdHxD!tuv#7)9-ej~|aj@C&x^cDlw}?e41Fpd+E87I;_lyw)H|-mB!s|vP
z)+3FpPh6TC1x}wR=s&3P>iY^4+XQSE@ZQ+?@;V3>xpfsBWT%e~y;=N)BZZHQn$t;3
z+a(}ex1q#rkNq<j()k(@WiwW7W|}w8&Q=lYY6@7+?4IlI^;z^fRF1cpHHcx}zG#S;
zjvyzM`tOG25kQAN?090??m-^)v0Adq^mW!UOV(Dqj-=XU8Ei}YoH<c@_4~H)xu?tQ
zNwmz#!xVfBZF(49{Y~J)8|K1Qm~f|6s`f7=Ezmz9_??Wi>U<dkc>PYn>{^o)Gd-4#
zLxPwT^ZUeKN#4dlWDCp32}id!e#syYZt9%4i_5S1k~m8EP=q$ws*y<qeV<tfMt^CE
zYG&gnZ3`>-B=1%kxUfo=Cyn+wn`i12R{kmO#F1Iy+B~H-r!~MprSQMP#m=O&FgWEU
zRh_hvEr3bEJaP9`BBRlbr*@)dVVMQV%Q{DIq*G&3RqUkQJ|I-=GilQ~c_6O{eb<t*
zOAFB5VL^sQe*N=+5g`YyriC>(lYu06ntjR*tIl7gHR@W(&9MF*4ujq`7%sA$UYa~x
z*p4Y4t>6M?Z>!e0Rlw~nkB7~3z0ax^ti1%d#8ub4Ze@i~k=GWyqjyxNbsD;4EIG`+
zWH#G;7(y|G2f42IN~Hc;d!{3cNAj>Le9l1e!GUrZj)O5l$q_9%dh=}5l;~d;`D_;$
zlo#o#u2@IFYP?V7QA@6o@6}H^t>bFS_FZDaf=5=gIlt_LYLIn|yOV_xN{<WQ?{L`R
zO(~2tcg@(vA4W=vwV~|l3U+)`DGuhx{K<EMj|40lf_~gwcq|&l+Ao-9IR1dxI~9aK
zm#3`s-QZ|PeDlWiQ{UzZ3;U4tr}`|6%(==&|0*8(g*{CQ-!=&+uZG!ho-w>##Ovoa
zlQFOh-zQUoLCf9_29DsdyWE}J$?zJO36$-8lhO3c^=K=6Ug+Nx`qWJDesk6Q<U|l=
zc}nKm+S>4EaAKR-jGmKDT&XER_U;lk7hNyt()b>{J%v%wlgZbQcPfy4=ZUJNs^67~
z_}+j>Sz&T;-W=%pzA_U<LX+0&li&pw6&q^`1zN-1#8U1o4ausdxjEk7@<F(^3r73B
zc9B}MM}Hl+Ea-)HbAJ2oV_W+5h?ls*<;&<ic#FKJMC7^yztTk@%(EtKp}mXBQ8;g3
zEpuEPo3y#R>8u9NmWb(K_4*HB9J<-Mxa!8V=XarbarL+seWhYsR)Upy4T*KykLN{P
z1fjTnf8B=S%>ps_(PM2DgCJHa5xm>w*bdyI;6B1;Xv(E9>2$RrVrOOr;RjiLtDSP*
zu%Qd$tXXn0Wvy+0x<6318A(4=>Z=cn+107grF7m1LK9Tr2@j5q)Ng)B@RQe3fwD^D
z^KFrhO>Lx=cN_BIeF{3Mp5}ld{oVeud=-(aOb=jK`f_g9^HYvZ>0~XrY;4co!5)-y
z-N-5nd#mrPHt49(%PA~PZXi{xUtVk}n47b|w`X8Fe-~AwlGES5X=QB+4kPWlt|sRF
z(iYwlMq#DBUrrAqL$@VBcNBS}H{-fS=E_%Nh7D@ludNPdiD_?yBS36mD6Bx8n)gFK
zxHZws0;-;%`vdsesXvOy3QzoYV;rT#J4xf(xbgcP4vG-$`mNto?KktqTaU(s3X(YJ
zqK6g>Q$myCC4paVJJf8sBeMR(=8pZJkqkcN#dkNevPg_6=5$g#v+)xbPw8(`E#{?2
zx$LG}hN6VT`8JV27e#g%eM*HML|#%(bCQ_4fHYI7sHxOeq2d5Rr&$J~or^S>|CQi}
z6}YgBXylZ!&DN#raH2CG-Mp+(`rsE1pMvr`R4j_x_u{X4%RDq3DxeE--9#&TD+JzE
zZ_06ulIRp93O+X|%am_k@MbIxw5_IFKmSl-!&;?$Jcc%3rxo_0X6Nfx51reYIbhrk
zoFVEq^YJB_PS@hIdPfZi6Y{b<ddzPn-ttr_#*)OoW>AJP7CfR7A*Z#I$4{Fywr6zc
zjg`EXBGtA+ZY{zzyA)Xd{=4`g1|oaI8=k0EoH8rCQ_FP0G9P5_HQz$y-Nfm7%Is2?
z@*B_uo`BIPp!UvI=y{kId9rpP8R%wEehU7_99cw7mu5o3A^x%{cg0}~AK}|VpPIn_
zx#+*Tx?0Nfq!UluLm>#M*NqK+B#xnma?Z{!E-t<qaL}bQvT)&nU`$~XDrZyTBPlW<
zg){nZ-7N&POl*yyIlbKbPYXN0D_(&((5JBZI}kE(-srB;xtv!BDw8*|+5&jy^~%;C
zw;V`2`klR_V|7ODV|-`hfTKV%G)x<04zyaQqPo;P$;s(I<$4-)E&Je0CM+ULOpfiE
z`>lX`e@S#$1!u_lF-`mdbG6u^#LsbU_f{*bObp&vJtIaUq&7l?)>2=f$?VUIZ)tWx
zFF`4T()3UkB?Cy@koYO}pRGYWeVM5Nu~0y@H&<PFyF(bZ5&XvbVxN7)nsL!V|9#gS
zh!=!eW>y09Je&C1#rswpkB$(AyC#hl!9k!Sy08qHqP0>YrW1r!AB!2Ehw~HmQMaL3
zk=eWt=aV^rttN{bpm^ufsONr7smZs~XNcDKsnb}SQ;;EA_f5m1Xjy%1_|krP?z0R+
zqpbfFN*+SjO{oK6RM7UUJDquPc#0+=!q4Crh{SXt&JlU>a^?2iI})rf0RA)Dqb2`h
z{oHW2ALV6VfVJJgbN|K56;=JtdM<kbnNT4tb;=h(HzSaKK~3}mWvAAE%IRPjiLGy4
zo(gGU7z9LX>|$;&UQTn~d@Mlw1zyHzXldMwE!-y?xr>i_f&X{SJW52QrTPgGDO$ZK
P-B*gTYBE()=E4611vtp^

literal 0
HcmV?d00001

diff --git a/Src/UserManage/img/eyesOpen1.png b/Src/UserManage/img/eyesOpen1.png
new file mode 100644
index 0000000000000000000000000000000000000000..01c41839f8172463f3d0480e0c06649ac778dc33
GIT binary patch
literal 8320
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
JHPYsx{{xh$)uR9a

literal 0
HcmV?d00001

diff --git a/Src/UserManage/mydatabase.cpp b/Src/UserManage/mydatabase.cpp
new file mode 100644
index 0000000..56710e4
--- /dev/null
+++ b/Src/UserManage/mydatabase.cpp
@@ -0,0 +1,243 @@
+#include "mydatabase.h"
+#include <QCoreApplication>
+
+MyDatabase::MyDatabase()
+{
+    if (QSqlDatabase::contains("qt_sql_default_connection"))
+    {
+        database = QSqlDatabase::database("qt_sql_default_connection");
+    }
+    else
+    {
+        // 建立和SQlite数据库的连接
+        database = QSqlDatabase::addDatabase("QSQLITE");
+        QString dbPath = QCoreApplication::applicationDirPath() + "//UserDataBase.db";
+        // 设置数据库文件的名字
+        database.setDatabaseName(dbPath);
+        database.setUserName("root");
+        database.setPassword("123456");
+    }
+
+    openDb();
+    if(!isTableExist("user"))
+    {
+        createTable();
+    }
+
+    QList<userData> list;
+    userData u1 = {"wanghaoyu1","123456","yingji"};
+    userData u2 = {"wanghaoyu2","123456","ceshi"};
+    userData u3 = {"wanghaoyu3","123456","haha"};
+    list += {u1,u2,u3};
+
+    multipleInsertData(list);
+    userData u4 = {"wanghaoyu4","123456","yingji1"};
+    singleInsertData(u4);
+    // deleteData("wanghaoyu4");
+    // queryDataByUsername("wanghaoyu3");
+    // updateDataByUsername("wanghaoyu3","234567","ceshi");
+}
+
+bool MyDatabase::openDb()
+{
+    if (!database.open())
+    {
+        qDebug() << "Error: Failed to connect database." << database.lastError();
+        return false;
+    }
+    else
+    {
+        qDebug() << "数据库打开成功." ;
+    }
+
+    return true;
+}
+
+void MyDatabase::createTable()
+{
+    // 用于执行sql语句的对象
+    QSqlQuery sqlQuery;
+    // 构建创建数据库的sql语句字符串
+    QString createSql = QString("CREATE TABLE IF NOT EXISTS user (\
+                                id INTEGER PRIMARY KEY AUTOINCREMENT,\
+                                username VARCHAR(50) UNIQUE NOT NULL,\
+                                password VARCHAR(50) NOT NULL,\
+                                scene VARCHAR(100) NOT NULL,\
+                                is_del INTEGER DEFAULT 0,\
+                                created_at TIMESTAMP DEFAULT (DATETIME('now', 'localtime')),\
+                                updated_at TIMESTAMP DEFAULT (DATETIME('now', 'localtime')))");
+    sqlQuery.prepare(createSql);
+
+    // 创建触发器
+    QString triggerSql = R"(
+    CREATE TRIGGER IF NOT EXISTS update_user_updated_at
+    AFTER UPDATE ON user
+    FOR EACH ROW
+    BEGIN
+        UPDATE user SET updated_at = CURRENT_TIMESTAMP WHERE id = OLD.id;
+    END;
+    )";
+
+    // 执行sql语句
+    if(!sqlQuery.exec())
+    {
+        qDebug() << "Error: Fail to create table. " << sqlQuery.lastError();
+    }
+    else
+    {
+        qDebug() << "Table created!";
+    }
+}
+
+bool MyDatabase::isTableExist(const QString &tableName)
+{
+    if(!database.isOpen())
+    {
+        return false;
+    }
+
+    return database.tables().contains(tableName);
+}
+
+bool MyDatabase::singleInsertData(userData &singleData)
+{
+    database.transaction();//开启事务
+    QSqlQuery sqlQuery;
+    sqlQuery.prepare("INSERT INTO user (username, password, scene) VALUES(?, ?, ?)");
+    sqlQuery.addBindValue(singleData.username);
+    sqlQuery.addBindValue(singleData.password);
+    sqlQuery.addBindValue(singleData.scene);
+    if(!sqlQuery.exec())
+    {
+        if(sqlQuery.lastError().text().contains("UNIQUE constraint failed"))
+        {
+            qDebug() << "用户名已存在:" << singleData.username;
+        }
+        qDebug() << "Error: Fail to insert data. " << sqlQuery.lastError();
+        database.rollback();//回滚
+        return false;
+    }
+    else
+    {
+        database.commit();//提交
+        return true;
+    }
+}
+
+bool MyDatabase::multipleInsertData(QList<userData> &multipleData)
+{
+    database.transaction();//开启事务
+    QSqlQuery sqlQuery;
+    sqlQuery.prepare("INSERT INTO user (username, password, scene) VALUES(?, ?, ?)");
+
+    QVariantList usernameList,passwordList,sceneList;
+    for(userData value : multipleData)
+    {
+        usernameList << value.username;
+        passwordList << value.password;
+        sceneList << value.scene;
+    }
+
+    sqlQuery.addBindValue(usernameList);
+    sqlQuery.addBindValue(passwordList);
+    sqlQuery.addBindValue(sceneList);
+
+    if(!sqlQuery.execBatch())
+    {
+        qDebug() << "Error: Fail to insert data. " << sqlQuery.lastError();
+        database.rollback();//回滚
+        return false;
+    }
+    else
+    {
+        database.commit();//提交
+        return true;
+    }
+}
+
+bool MyDatabase::deleteData(const QString &username)
+{
+    database.transaction();
+    QSqlQuery sqlQuery;
+    sqlQuery.prepare("UPDATE user SET is_del=?,updated_at=(DATETIME('now', 'localtime')) WHERE username=?");
+    sqlQuery.addBindValue(1);
+    sqlQuery.addBindValue(username);
+    if(!sqlQuery.exec())
+    {
+        qDebug() << "Error: Fail to delete data. "<< sqlQuery.lastError();
+        database.rollback();
+        return false;
+    }
+    else
+    {
+        qDebug() << "delete data success!";
+        database.commit();
+        return true;
+    }
+}
+
+bool MyDatabase::updateDataByUsername(const QString &username, const QString &password, const QString &scene)
+{
+    if(!queryDataByUsername(username))//根据用户名没有查询到数据-不进行更新操作
+    {
+        return false;
+    }
+    database.transaction();
+    QSqlQuery sqlQuery;
+    sqlQuery.prepare("UPDATE user SET password=? ,scene=?,updated_at=(DATETIME('now', 'localtime')) WHERE username=?");
+    sqlQuery.addBindValue(password);
+    sqlQuery.addBindValue(scene);
+    sqlQuery.addBindValue(username);
+    if(!sqlQuery.exec())
+    {
+        qDebug() << "Error: Fail to update data. "<< sqlQuery.lastError();
+        database.rollback();
+        return false;
+    }
+    else
+    {
+        qDebug() << "update data success!";
+        database.commit();
+        return true;
+    }
+}
+
+bool MyDatabase::queryDataByUsername(const QString &username)
+{
+    QSqlQuery sqlQuery;
+    sqlQuery.prepare("SELECT * FROM user WHERE is_del = 0 AND username=?");
+    sqlQuery.addBindValue(username);
+    if(!sqlQuery.exec())
+    {
+        qDebug() << "Error: Fail to query table. " << sqlQuery.lastError();
+        return false;
+    }
+    else
+    {
+        qDebug() << "query data success!";
+        if(!sqlQuery.next())
+        {
+            qDebug() << "No data found!";//没找到数据
+            return false;
+        }
+
+        sqlQuery.previous();
+
+        while(sqlQuery.next())
+        {
+            int id = sqlQuery.value("id").toInt();
+            _queryUserData.username = sqlQuery.value("username").toString();
+            _queryUserData.password = sqlQuery.value("password").toString();
+            _queryUserData.scene = sqlQuery.value("scene").toString();
+
+            qDebug()<<QString("id:%1  username:%2  password:%3  scene:%4")
+                            .arg(id).arg(_queryUserData.username).arg(_queryUserData.password).arg(_queryUserData.scene);
+        }
+        return true;
+    }
+}
+
+userData MyDatabase::getQueryUserData()
+{
+    return _queryUserData;
+}
diff --git a/Src/UserManage/mydatabase.h b/Src/UserManage/mydatabase.h
new file mode 100644
index 0000000..3726f63
--- /dev/null
+++ b/Src/UserManage/mydatabase.h
@@ -0,0 +1,51 @@
+#ifndef MYDATABASE_H
+#define MYDATABASE_H
+
+#include <QSqlDatabase>
+#include <QSqlQuery>
+#include <QSqlError>
+#include <QDebug>
+#include <QList>
+
+typedef struct
+{
+    QString username;
+    QString password;
+    QString scene;
+}userData;
+
+class MyDatabase
+{
+public:
+    MyDatabase();
+
+    // 打开数据库
+    bool openDb();
+
+    // 创建数据表
+    void createTable();
+
+    // 判断数据表是否存在
+    bool isTableExist(const QString& tableName);
+
+    // 插入数据
+    bool singleInsertData(userData &singleData); // 插入单条数据
+    bool multipleInsertData(QList<userData> &multipleData); // 插入多条数据
+
+    //删除数据
+    bool deleteData(const QString &username);
+
+    //修改数据-密码 场景
+    bool updateDataByUsername(const QString &username, const QString &password, const QString &scene);
+
+    //查询数据
+    bool queryDataByUsername(const QString &username);
+
+    //获取查询到的数据
+    userData getQueryUserData();
+private:
+    QSqlDatabase database;// 用于建立和数据库的连接
+    userData _queryUserData;
+};
+
+#endif // MYDATABASE_H
diff --git a/Src/UserManage/res.qrc b/Src/UserManage/res.qrc
new file mode 100644
index 0000000..01441c3
--- /dev/null
+++ b/Src/UserManage/res.qrc
@@ -0,0 +1,6 @@
+<RCC>
+    <qresource prefix="/">
+        <file>img/eyesOpen.png</file>
+        <file>img/eyesOpen1.png</file>
+    </qresource>
+</RCC>
diff --git a/Src/UserManage/userlogin.cpp b/Src/UserManage/userlogin.cpp
new file mode 100644
index 0000000..5846864
--- /dev/null
+++ b/Src/UserManage/userlogin.cpp
@@ -0,0 +1,230 @@
+#include "userlogin.h"
+#include "ui_userlogin.h"
+#include <QMessageBox>
+#include <QRegularExpressionValidator>
+#include <QLabel>
+
+UserLogin::UserLogin(QWidget *parent)
+    : QWidget(parent)
+    , ui(new Ui::UserLogin)
+{
+    ui->setupUi(this);
+    initLineEdit();
+    initControls();
+}
+
+UserLogin::~UserLogin()
+{
+    delete ui;
+}
+
+void UserLogin::initLineEdit()
+{
+    // 定义正则表达式:允许大写字母、小写字母、数字和特殊符号
+    QRegularExpression regExp("[A-Za-z0-9!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+");
+
+    // 创建验证器
+    QRegularExpressionValidator *validator = new QRegularExpressionValidator(regExp, this);
+
+    // 设置验证器
+    ui->userlineEdit->setValidator(validator);
+    ui->passwordlineEdit->setValidator(validator);
+}
+
+void UserLogin::initControls()
+{
+    QPixmap pixmap(":/res/SDFP3.png");
+    ui->loginlabel->setPixmap(pixmap);
+    ui->loginlabel->setScaledContents(true);
+
+    ui->widget_2->setStyleSheet("background-color: #1E1E1D;"
+                                "border-top-left-radius: 20px; "
+                                "border-top-right-radius: 20px;");
+
+    ui->widget_3->setObjectName("widget_3");  // 给 widget_3 设置对象名称
+    ui->widget_3->setStyleSheet("QWidget#widget_3 {"
+                                "background-color: #363636;"
+                                "border-bottom-left-radius: 20px; "
+                                "border-bottom-right-radius: 20px;"
+                                "}");
+
+    ui->userlineEdit->setStyleSheet("border-radius: 5px;");
+    ui->passwordlineEdit->setStyleSheet("border-radius: 5px;");
+    ui->loginButton->setStyleSheet("QPushButton{"
+                                   "font-family: STHupo;"
+                                   "border-radius: 15px;"
+                                   "color: white;"
+                                   "font-weight: bold;"
+                                   "border: none;"
+                                   "background-color: #5289C1;"
+                                   "font-size: 20px;"
+                                   "}"
+                                   // 设置按钮悬停时的样式
+                                   "QPushButton:hover {"
+                                   "background-color: #4078A9;"    // 悬停时的背景颜色
+                                   "}"
+                                   // 设置按钮按下或选中时的渐变背景
+                                   "QPushButton::pressed, QPushButton::checked {"
+                                   "color: #FFFFFF;"                                                       // 字体颜色为白色
+                                   "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, "
+                                   "stop:0 #273c75, stop:1 #487eb0);" // 渐变背景
+                                   "}");
+
+    ui->exitButton->setStyleSheet("QPushButton{"
+                                  "font-family: STHupo;"
+                                  "border-radius: 15px;"
+                                  "color: white;"
+                                  "font-weight: bold;"
+                                  "border: none;"
+                                  "background-color: #A52A2A;"
+                                  "font-size: 20px;"
+                                  "}"
+                                  // 设置按钮悬停时的样式
+                                  "QPushButton:hover {"
+                                  "background-color: #8B1C1C;"    // 悬停时的背景颜色
+                                  "}"
+                                  // 设置按钮按下或选中时的渐变背景
+                                  "QPushButton::pressed, QPushButton::checked {"
+                                  "color: #FFFFFF;"                                                       // 字体颜色为白色
+                                  "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, "
+                                  "stop:0 #5C1919, stop:1 #9E2A2A);" // 渐变背景
+                                  "}");
+
+
+    _passwordCheckBox = new QCheckBox(ui->passwordlineEdit);
+    //设置样式表(图片为眼睛样式)
+    _passwordCheckBox->setStyleSheet("QCheckBox::indicator {"
+                                     "width: 20px;"
+                                     "height: 20px;"
+                                     "image: url(:/res/eyec1.png);" // 未选中时的图片
+                                     "}"
+                                     "QCheckBox::indicator:checked {"
+                                     "image: url(:/res/eye3.png);" // 选中时的图片
+                                     "}");
+
+
+    ui->label->setStyleSheet("QLabel {"
+                             "font-family: 'STHupo';"  // 使用艺术字体
+                             "font-size: 40px;"              // 设置字体大小
+                             "font-weight: bold;"            // 设置加粗
+                             "color: #5289C1;"               // 设置字体颜色
+                             "text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);"  // 添加阴影效果
+                             "}");
+    ui->label->setAlignment(Qt::AlignCenter);
+
+    ui->pushButton->setStyleSheet("QPushButton {"
+                                  "border: none;"                 // 没有边框
+                                  "color: white;"                 // 默认字体颜色为白色
+                                  "font-size: 18px;"              // 字体大小为 20
+                                  "font-weight: bold;"
+                                  "background-color: transparent;" // 背景透明
+                                  "font-family: 'STHeiti';"
+                                  "}"
+
+                                  // 设置按钮悬停时的样式
+                                  "QPushButton:hover {"
+                                  "color: #5289C1;"               // 悬停时字体颜色变为橙色
+                                  "}"
+
+                                  // 设置按钮按下时的字体颜色
+                                  "QPushButton:pressed {"
+                                  "color: #4A7DB0;"               // 按下时字体颜色变为绿色
+                                  "}"
+
+                                  // 设置按钮选中时的样式
+                                  "QPushButton:checked {"
+                                  "color: #5289C1;"               // 选中时字体颜色变为绿色
+                                  "}");
+
+    connect(_passwordCheckBox,&QCheckBox::checkStateChanged,this,[this](int state){
+        if(state == Qt::Checked)
+        {
+            ui->passwordlineEdit->setEchoMode(QLineEdit::Normal);
+        }
+        else if(state == Qt::Unchecked)
+        {
+            ui->passwordlineEdit->setEchoMode(QLineEdit::Password);
+        }
+    });
+
+}
+
+bool UserLogin::checkEditFormat(const QString &edit, const QString &origins)
+{
+    if(edit.isEmpty())
+    {
+        QMessageBox::information(NULL, "提示", "输入"+origins+"不能为空!");
+        return false;
+    }
+    else
+    {
+        // 定义正则表达式:至少 8 个字符,且只能是大写字母、小写字母、数字和特殊符号
+        QRegularExpression regExp("[A-Za-z0-9!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]{6,}");
+
+        // 检查输入内容
+        if (!regExp.match(edit).hasMatch())
+        {
+            QMessageBox::information(NULL, "提示", origins +"至少输入 6 个字符,且只能包含大写字母、小写字母、数字和特殊符号!");
+            return false;
+        }
+    }
+    return true;
+}
+
+void UserLogin::resizeEvent(QResizeEvent *event)
+{
+    QWidget::resizeEvent(event);
+    _passwordCheckBox->setGeometry(ui->passwordlineEdit->width()-30,(ui->passwordlineEdit->height()/2)-10,20,20);
+}
+
+void UserLogin::on_loginButton_clicked()
+{
+    if(!checkEditFormat(ui->userlineEdit->text(),"用户名"))
+        return;
+    if(!checkEditFormat(ui->passwordlineEdit->text(),"密码"))
+        return;
+
+    //查询到数据
+    if(dataBase.queryDataByUsername(ui->userlineEdit->text()))
+    {
+        _queryUserData = dataBase.getQueryUserData();
+        if(_queryUserData.password == ui->passwordlineEdit->text())//密码匹配
+        {
+            //判断场景
+            if(_queryUserData.scene == "yingji")
+            {
+                emit sendSenceData(use_sence::Emergency);
+                QMessageBox::information(NULL, "提示", "进入应急场景!");
+            }
+            else if(_queryUserData.scene == "ceshi")
+            {
+                emit sendSenceData(use_sence::Sea_Rescue);
+                QMessageBox::information(NULL, "提示", "进入测试场景!");
+            }
+        }
+        else
+        {
+            QMessageBox::information(NULL, "提示", "密码输入错误!");
+            return;
+        }
+    }
+    else
+    {
+        //用户名不存在
+        QMessageBox::information(NULL, "提示", "用户名不存在!");
+        return;
+    }
+}
+
+
+void UserLogin::on_pushButton_clicked()
+{
+    emit loginDlgClick(click_type::HomePageClick);
+}
+
+
+void UserLogin::on_exitButton_clicked()
+{
+    emit loginDlgClick(click_type::ExitLogin);
+}
+
diff --git a/Src/UserManage/userlogin.h b/Src/UserManage/userlogin.h
new file mode 100644
index 0000000..945abfa
--- /dev/null
+++ b/Src/UserManage/userlogin.h
@@ -0,0 +1,55 @@
+#ifndef USERLOGIN_H
+#define USERLOGIN_H
+
+#include <QCheckBox>
+#include <QWidget>
+#include "mydatabase.h"
+
+namespace Ui {
+class UserLogin;
+}
+
+class UserLogin : public QWidget
+{
+    Q_OBJECT
+
+public:
+    explicit UserLogin(QWidget *parent = nullptr);
+    ~UserLogin();
+
+    enum use_sence : unsigned char
+    {
+        Emergency = 1,  //应急 1
+        Sea_Rescue, //海上救捞 2
+    };
+
+    enum click_type : unsigned char
+    {
+        HomePageClick = 0,  //主页点击
+        ExitLogin,          //退出登录
+    };
+
+private slots:
+    void on_loginButton_clicked();
+
+    void on_pushButton_clicked();
+
+    void on_exitButton_clicked();
+
+private:
+    Ui::UserLogin *ui;
+    MyDatabase dataBase;
+    void initLineEdit();
+    void initControls();
+    bool checkEditFormat(const QString &edit, const QString &origins);
+    userData _queryUserData;
+    QCheckBox *_passwordCheckBox;
+signals:
+    void sendSenceData(use_sence sence);
+    void loginDlgClick(int clickType);
+
+protected:
+    void resizeEvent(QResizeEvent *event) override;
+};
+
+#endif // USERLOGIN_H
diff --git a/Src/UserManage/userlogin.ui b/Src/UserManage/userlogin.ui
new file mode 100644
index 0000000..8ea3dfa
--- /dev/null
+++ b/Src/UserManage/userlogin.ui
@@ -0,0 +1,573 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>UserLogin</class>
+ <widget class="QWidget" name="UserLogin">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>1288</width>
+    <height>826</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout_2">
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QStackedWidget" name="stackedWidget">
+     <property name="styleSheet">
+      <string notr="true"/>
+     </property>
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="page">
+      <layout class="QGridLayout" name="gridLayout">
+       <item row="1" column="2">
+        <spacer name="horizontalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="0" column="0" colspan="3">
+        <widget class="QWidget" name="widget" native="true">
+         <property name="maximumSize">
+          <size>
+           <width>16777215</width>
+           <height>40</height>
+          </size>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_3">
+          <property name="leftMargin">
+           <number>0</number>
+          </property>
+          <property name="topMargin">
+           <number>0</number>
+          </property>
+          <property name="rightMargin">
+           <number>0</number>
+          </property>
+          <property name="bottomMargin">
+           <number>0</number>
+          </property>
+          <property name="spacing">
+           <number>0</number>
+          </property>
+          <item row="0" column="1">
+           <widget class="QPushButton" name="pushButton">
+            <property name="maximumSize">
+             <size>
+              <width>40</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="text">
+             <string>主页</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="0">
+           <spacer name="horizontalSpacer">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Fixed</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="0" column="2">
+           <spacer name="horizontalSpacer_2">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="2" column="1">
+        <spacer name="verticalSpacer">
+         <property name="orientation">
+          <enum>Qt::Orientation::Vertical</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>130</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="1" column="1">
+        <widget class="QWidget" name="widget_l" native="true">
+         <layout class="QVBoxLayout" name="verticalLayout">
+          <property name="spacing">
+           <number>0</number>
+          </property>
+          <item>
+           <widget class="QWidget" name="widget_2" native="true">
+            <property name="minimumSize">
+             <size>
+              <width>0</width>
+              <height>200</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>16777215</width>
+              <height>220</height>
+             </size>
+            </property>
+            <layout class="QGridLayout" name="gridLayout_2">
+             <property name="verticalSpacing">
+              <number>0</number>
+             </property>
+             <item row="1" column="0">
+              <spacer name="horizontalSpacer_5">
+               <property name="orientation">
+                <enum>Qt::Orientation::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item row="1" column="1">
+              <widget class="QLabel" name="loginlabel">
+               <property name="minimumSize">
+                <size>
+                 <width>100</width>
+                 <height>100</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>200</width>
+                 <height>200</height>
+                </size>
+               </property>
+               <property name="text">
+                <string/>
+               </property>
+               <property name="alignment">
+                <set>Qt::AlignmentFlag::AlignCenter</set>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="2">
+              <spacer name="horizontalSpacer_6">
+               <property name="orientation">
+                <enum>Qt::Orientation::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item row="2" column="0" colspan="3">
+              <widget class="QLabel" name="label">
+               <property name="minimumSize">
+                <size>
+                 <width>0</width>
+                 <height>39</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>16777215</width>
+                 <height>40</height>
+                </size>
+               </property>
+               <property name="layoutDirection">
+                <enum>Qt::LayoutDirection::LeftToRight</enum>
+               </property>
+               <property name="text">
+                <string>HTFP-PayLoad</string>
+               </property>
+               <property name="alignment">
+                <set>Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop</set>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+          <item>
+           <widget class="QWidget" name="widget_3" native="true">
+            <layout class="QVBoxLayout" name="verticalLayout_2">
+             <item>
+              <spacer name="verticalSpacer_4">
+               <property name="orientation">
+                <enum>Qt::Orientation::Vertical</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Policy::Fixed</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>28</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <layout class="QHBoxLayout" name="horizontalLayout">
+               <property name="spacing">
+                <number>0</number>
+               </property>
+               <item>
+                <spacer name="horizontalSpacer_7">
+                 <property name="orientation">
+                  <enum>Qt::Orientation::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Policy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>20</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+               <item>
+                <widget class="QLineEdit" name="userlineEdit">
+                 <property name="minimumSize">
+                  <size>
+                   <width>400</width>
+                   <height>40</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>480</width>
+                   <height>50</height>
+                  </size>
+                 </property>
+                 <property name="placeholderText">
+                  <string>用户名</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <spacer name="horizontalSpacer_8">
+                 <property name="orientation">
+                  <enum>Qt::Orientation::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Policy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>20</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+              </layout>
+             </item>
+             <item>
+              <spacer name="verticalSpacer_2">
+               <property name="orientation">
+                <enum>Qt::Orientation::Vertical</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Policy::Fixed</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>30</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <layout class="QHBoxLayout" name="horizontalLayout_3">
+               <property name="spacing">
+                <number>0</number>
+               </property>
+               <item>
+                <spacer name="horizontalSpacer_9">
+                 <property name="orientation">
+                  <enum>Qt::Orientation::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Policy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>20</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+               <item>
+                <widget class="QLineEdit" name="passwordlineEdit">
+                 <property name="minimumSize">
+                  <size>
+                   <width>400</width>
+                   <height>39</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>480</width>
+                   <height>40</height>
+                  </size>
+                 </property>
+                 <property name="echoMode">
+                  <enum>QLineEdit::EchoMode::Password</enum>
+                 </property>
+                 <property name="placeholderText">
+                  <string>密码</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <spacer name="horizontalSpacer_10">
+                 <property name="orientation">
+                  <enum>Qt::Orientation::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Policy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>20</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+              </layout>
+             </item>
+             <item>
+              <spacer name="verticalSpacer_3">
+               <property name="orientation">
+                <enum>Qt::Orientation::Vertical</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Policy::Fixed</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>30</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <layout class="QHBoxLayout" name="horizontalLayout_4">
+               <property name="spacing">
+                <number>0</number>
+               </property>
+               <item>
+                <spacer name="horizontalSpacer_11">
+                 <property name="orientation">
+                  <enum>Qt::Orientation::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Policy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>20</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+               <item>
+                <widget class="QPushButton" name="loginButton">
+                 <property name="minimumSize">
+                  <size>
+                   <width>200</width>
+                   <height>40</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>480</width>
+                   <height>50</height>
+                  </size>
+                 </property>
+                 <property name="text">
+                  <string>登录</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <spacer name="horizontalSpacer_14">
+                 <property name="orientation">
+                  <enum>Qt::Orientation::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Policy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>20</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+              </layout>
+             </item>
+             <item>
+              <spacer name="verticalSpacer_6">
+               <property name="orientation">
+                <enum>Qt::Orientation::Vertical</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Policy::Fixed</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>30</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <layout class="QHBoxLayout" name="horizontalLayout_5">
+               <property name="spacing">
+                <number>0</number>
+               </property>
+               <item>
+                <spacer name="horizontalSpacer_12">
+                 <property name="orientation">
+                  <enum>Qt::Orientation::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Policy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>20</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+               <item>
+                <widget class="QPushButton" name="exitButton">
+                 <property name="minimumSize">
+                  <size>
+                   <width>200</width>
+                   <height>40</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>480</width>
+                   <height>50</height>
+                  </size>
+                 </property>
+                 <property name="text">
+                  <string>退出登录</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <spacer name="horizontalSpacer_15">
+                 <property name="orientation">
+                  <enum>Qt::Orientation::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Policy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>20</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+              </layout>
+             </item>
+             <item>
+              <spacer name="verticalSpacer_5">
+               <property name="orientation">
+                <enum>Qt::Orientation::Vertical</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Policy::MinimumExpanding</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>40</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+            </layout>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <spacer name="horizontalSpacer_3">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 39ca936..02562e0 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -19,6 +19,7 @@
 #include "global.h"
 #include "ui_mainwindow.h"
 
+
 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent), ui(new Ui::MainWindow) {
     ui->setupUi(this);
@@ -46,6 +47,7 @@ MainWindow::MainWindow(QWidget *parent)
 
     initUAVIDMap();
     initNotifyManager();
+    initUserLoginDlg();
 }
 
 MainWindow::~MainWindow() {
@@ -92,36 +94,26 @@ void MainWindow::initWindow() {
 
     // 使用类中的get方法获取配置文件中的IP
     m_allSetMap = m_HomePagedlg->settingWidget->getAllParam();
-    m_GDDCdlg->setGlobalSetMap(m_allSetMap);
-    qDebug() << "=============设备配置================";
+    //m_GDDCdlg->setGlobalSetMap(m_allSetMap);
+    /*qDebug() << "=============设备配置================";
     qDebug() << "光电吊舱------";
-    qDebug() << "远端ip" << m_allSetMap["光电吊舱"].net.remoteIp;
+    qDebug() << "远端ip" << m_allSetMap["Pod"].net.remoteIp;
     qDebug() << "L链----------";
-    qDebug() << "ULR:" << m_allSetMap["L链"].url;
+    qDebug() << "ULR:" << m_allSetMap["L-Link"].url;
     qDebug() << "宽带自组网-----";
-    qDebug() << "URL:" << m_allSetMap["宽带自组网"].url;
+    qDebug() << "URL:" << m_allSetMap["HocNetwork"].url;
     qDebug() << "机载卫通------";
-    qDebug() << "URL:" << m_allSetMap["机载卫通"].url;
+    qDebug() << "URL:" << m_allSetMap["SatelliteComm"].url;
     qDebug() << "三维建模------";
-    qDebug() << "远端ip:" << m_allSetMap["三维建模"].net.remoteIp;
-    qDebug() << "远端端口:" << m_allSetMap["三维建模"].net.remotePort;
-    qDebug() << "本地ip:" << m_allSetMap["三维建模"].net.localIp;
-    qDebug() << "本地端口:" << m_allSetMap["三维建模"].net.localPort;
-
-    // mWeb = new CWebEngineView();
-    // mWeb->setPage(new CustomWebEnginePage());
-    // mWeb->load(QUrl("http://192.168.150.1"));
+    qDebug() << "远端ip:" << m_allSetMap["ModelCamera"].net.remoteIp;
+    qDebug() << "远端端口:" << m_allSetMap["ModelCamera"].net.remotePort;
+    qDebug() << "本地ip:" << m_allSetMap["ModelCamera"].net.localIp;
+    qDebug() << "本地端口:" << m_allSetMap["ModelCamera"].net.localPort;*/
+
     lLinkWeb = new CWebEngineView();
     lLinkWeb->setPage(new CustomWebEnginePage());
-    lLinkWeb->load(QUrl(m_allSetMap["L链"].url));
+    lLinkWeb->load(QUrl(m_allSetMap["L-Link"].url));
     connect(lLinkWeb->page(), &QWebEnginePage::loadFinished, this, [=]() {
-        // QString jsScript = R"(
-        //         var usernameField =
-        //         document.querySelector('input[name="username"]'); if
-        //         (usernameField) {
-        //             usernameField.value = 'admin';  // 填充用户名
-        //         }
-        //     )";
         QString jsScript = R"(
         var button = document.getElementById('clickButt');
         if (button) {
@@ -139,21 +131,20 @@ void MainWindow::initWindow() {
 
     adHocNetworkWeb = new CWebEngineView();
     adHocNetworkWeb->setPage(new CustomWebEnginePage());
-    adHocNetworkWeb->load(QUrl(m_allSetMap["宽带自组网"].url));
+    adHocNetworkWeb->load(QUrl(m_allSetMap["HocNetwork"].url));
 
     satelliteCommWeb = new CWebEngineView();
     satelliteCommWeb->setPage(new CustomWebEnginePage());
-    satelliteCommWeb->load(QUrl(m_allSetMap["机载卫通"].url));
+    satelliteCommWeb->load(QUrl(m_allSetMap["SatelliteComm"].url));
 
     m_ModelCameraDlg = new ModelCameraDlg(this);
-    emit m_ModelCameraDlg->sendNetParam_signal(m_allSetMap["三维建模"].net);
+    emit m_ModelCameraDlg->sendNetParam_signal(m_allSetMap["ModelCamera"].net);
     // 接收主页面设置窗口的url数据传递并设置
     connect(
         m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOneSet, this,
         [&](unsigned char urlIndex, settingStruct settings) {
             switch (urlIndex) {
                 case HomePageSetingWidget::GDDC:
-                    // dosomething
                     m_GDDCdlg->m_DlgGDDCSet->initPullURL(settings.net.remoteIp);
                     break;
                 case HomePageSetingWidget::L_Link:
@@ -177,7 +168,6 @@ void MainWindow::initWindow() {
     ui->stackedWidget->addWidget(m_SDFPDlg);
     ui->stackedWidget->addWidget(m_HomePagedlg);
     ui->stackedWidget->addWidget(m_GDDCdlg);
-    // ui->stackedWidget->addWidget(mWeb);
     ui->stackedWidget->addWidget(lLinkWeb);
     ui->stackedWidget->addWidget(adHocNetworkWeb);
     ui->stackedWidget->addWidget(satelliteCommWeb);
@@ -185,6 +175,7 @@ void MainWindow::initWindow() {
     ui->stackedWidget->addWidget(m_ModelCameraDlg);
     // 初始栈窗口显示主页
     ui->stackedWidget->setCurrentWidget(m_SDFPDlg);
+    ui->senceContrlWidget->hide();
 }
 
 void MainWindow::initButton() {
@@ -200,6 +191,8 @@ void MainWindow::initButton() {
     ui->toolButton_7->setIcon(QIcon(":/res/research.png"));
     ui->toolButton_8->setIcon(QIcon(":/res/3D.png"));
     ui->toolButton_9->setIcon(QIcon(":/res/SDFP3.png"));
+    ui->toolButton_10->setIcon(QIcon(":/res/SDFP3.png"));
+    ui->toolButton_21->setIcon(QIcon(":/res/GDDC.png"));
     ui->toolButton->setIconSize(QSize(sizeX, sizeY));
     ui->toolButton_2->setIconSize(QSize(sizeX, sizeY));
     ui->toolButton_3->setIconSize(QSize(sizeX, sizeY));
@@ -209,6 +202,8 @@ void MainWindow::initButton() {
     ui->toolButton_7->setIconSize(QSize(sizeX, sizeY));
     ui->toolButton_8->setIconSize(QSize(sizeX, sizeY));
     ui->toolButton_9->setIconSize(QSize(sizeX * 1.2, sizeY * 1.2));
+    ui->toolButton_10->setIconSize(QSize(sizeX * 1.2, sizeY * 1.2));
+    ui->toolButton_21->setIconSize(QSize(sizeX, sizeY));
     ui->toolButton->setText("主页");
     ui->toolButton_2->setText("光电吊舱");
     ui->toolButton_3->setText("L链");
@@ -218,6 +213,8 @@ void MainWindow::initButton() {
     ui->toolButton_7->setText("搜救载荷");
     ui->toolButton_8->setText("三维建模");
     ui->toolButton_9->setText("时代飞鹏");
+    ui->toolButton_10->setText("时代飞鹏");
+    ui->toolButton_21->setText("光电吊舱");
     ui->toolButton->setFixedWidth(FixedWidth);
     ui->toolButton_2->setFixedWidth(FixedWidth);
     ui->toolButton_3->setFixedWidth(FixedWidth);
@@ -227,6 +224,8 @@ void MainWindow::initButton() {
     ui->toolButton_7->setFixedWidth(FixedWidth);
     ui->toolButton_8->setFixedWidth(FixedWidth);
     ui->toolButton_9->setFixedWidth(FixedWidth);
+    ui->toolButton_10->setFixedWidth(FixedWidth);
+    ui->toolButton_21->setFixedWidth(FixedWidth);
     ui->toolButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
     ui->toolButton_2->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
     ui->toolButton_3->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
@@ -236,6 +235,8 @@ void MainWindow::initButton() {
     ui->toolButton_7->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
     ui->toolButton_8->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
     ui->toolButton_9->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+    ui->toolButton_10->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+    ui->toolButton_21->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
     ui->toolButton->setStyleSheet(g_ToolBtnStyle);
     ui->toolButton_2->setStyleSheet(g_ToolBtnStyle);
     ui->toolButton_3->setStyleSheet(g_ToolBtnStyle);
@@ -245,6 +246,8 @@ void MainWindow::initButton() {
     ui->toolButton_7->setStyleSheet(g_ToolBtnStyle);
     ui->toolButton_8->setStyleSheet(g_ToolBtnStyle);
     ui->toolButton_9->setStyleSheet(g_ToolBtnStyle);
+    ui->toolButton_10->setStyleSheet(g_ToolBtnStyle);
+    ui->toolButton_21->setStyleSheet(g_ToolBtnStyle);
     // ui->pushButton->setStyleSheet(g_PushBtnStyle);
 }
 
@@ -359,6 +362,28 @@ void MainWindow::toolButton_9_clicked() {
     ui->stackedWidget->setCurrentWidget(m_SDFPDlg);
 }
 
+void MainWindow::getUserSence(UserLogin::use_sence sence)
+{
+    _currentScene = sence;
+    switch(sence)
+    {
+    case UserLogin::Emergency:
+        {
+            QMessageBox::information(NULL, "提示", "进入switch emergency!");
+            emergencySceneShow();
+            break;
+        }
+    case UserLogin::Sea_Rescue:
+        {
+            QMessageBox::information(NULL, "提示", "进入switch Sea_Rescue!");
+            seaRescueSceneShow();
+            break;
+        }
+    default:
+        break;
+    }
+}
+
 // 更新主界面按钮颜色
 void MainWindow::changeBtnColor(int num) {
     initButton();
@@ -390,6 +415,12 @@ void MainWindow::changeBtnColor(int num) {
         case 9:
             ui->toolButton_9->setStyleSheet(g_ToolBtnSelStyle);
             break;
+        case 10:
+            ui->toolButton_10->setStyleSheet(g_ToolBtnSelStyle);
+            break;
+        case 11:
+            ui->toolButton_21->setStyleSheet(g_ToolBtnSelStyle);
+            break;
     }
 }
 
@@ -424,6 +455,22 @@ void MainWindow::initNotifyManager() {
     g_notifyManager->setNotifyWndSize(300, 60);
 }
 
+void MainWindow::initUserLoginDlg()
+{
+    m_userLoginDlg = new UserLogin(this);
+    // m_userLoginDlg->setWindowFlags(Qt::Dialog);
+    // m_userLoginDlg->show();
+
+    ui->stackedWidget->addWidget(m_userLoginDlg);
+
+    _currentScene = 0;
+
+    //初始化槽函数
+    connect(m_userLoginDlg,&UserLogin::sendSenceData,this,&MainWindow::getUserSence);
+    connect(m_userLoginDlg,&UserLogin::loginDlgClick,this,&MainWindow::getloginDlgBtnClicked);
+    connect(m_SDFPDlg,&SDFPDlg::clickLoginBtn,this,&MainWindow::receptLoginBtnClicked);
+}
+
 bool MainWindow::nativeEvent(const QByteArray &eventType, void *message,
                              qintptr *result) {
 #ifdef Q_OS_WIN
@@ -439,3 +486,78 @@ bool MainWindow::nativeEvent(const QByteArray &eventType, void *message,
 #endif
     return QMainWindow::nativeEvent(eventType, message, result);
 }
+
+// 海上 主页面
+void MainWindow::on_toolButton_10_clicked()
+{
+    changeBtnColor(10);
+    ui->stackedWidget->setCurrentWidget(m_SDFPDlg);
+}
+
+// 海上 光电吊舱
+void MainWindow::on_toolButton_21_clicked()
+{
+    changeBtnColor(11);
+    ui->stackedWidget->setCurrentWidget(m_GDDCdlg);
+}
+
+void MainWindow::receptLoginBtnClicked()
+{
+    ui->senceContrlWidget->hide();
+    ui->stackedWidget->setCurrentWidget(m_userLoginDlg);
+}
+
+void MainWindow::getloginDlgBtnClicked(int clickType)
+{
+    switch(clickType)
+    {
+    case UserLogin::click_type::HomePageClick:
+    {
+        if(_currentScene == 0)
+        {
+            ui->senceContrlWidget->hide();
+            ui->stackedWidget->setCurrentWidget(m_SDFPDlg);
+        }
+        else if(_currentScene == 1)
+        {
+            emergencySceneShow();
+        }
+        else if(_currentScene == 2)
+        {
+            seaRescueSceneShow();
+        }
+        break;
+    }
+    case UserLogin::click_type::ExitLogin: //退出登录
+    {
+        _currentScene = 0;
+        ui->stackedWidget->setCurrentWidget(m_SDFPDlg);
+        ui->senceContrlWidget->hide();
+    }
+    default:
+        break;
+    }
+}
+
+//应急场景显示
+void MainWindow::emergencySceneShow()
+{
+    toolButton_9_clicked();
+    ui->senceContrlWidget->setCurrentIndex(0);
+    if(!ui->senceContrlWidget->isVisible())
+    {
+        ui->senceContrlWidget->show();
+    }
+}
+
+//海上就捞场景显示
+void MainWindow::seaRescueSceneShow()
+{
+    on_toolButton_10_clicked();
+    ui->senceContrlWidget->setCurrentIndex(1);
+    if(!ui->senceContrlWidget->isVisible())
+    {
+        ui->senceContrlWidget->show();
+    }
+}
+
diff --git a/mainwindow.h b/mainwindow.h
index 80d9ab1..9d16799 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -18,6 +18,7 @@
 #include "Src/HomePage/homepagedlg.h"
 #include "Src/ModelCamera/modelcameradlg.h"
 #include "Src/RescueLoad/rescueloadwidget.h"
+#include "userlogin.h"
 
 #ifdef Q_OS_WIN
 #include "windows.h"
@@ -61,6 +62,12 @@ private slots:
     void toolButton_8_clicked();
     void toolButton_9_clicked();
 
+    void getUserSence(UserLogin::use_sence sence);
+    void on_toolButton_10_clicked();
+
+    void on_toolButton_21_clicked();
+    void receptLoginBtnClicked();//sdfp页面登录按钮点击
+    void getloginDlgBtnClicked(int clickType);//登录页面按钮点击
 public:
     GDDCdlg *m_GDDCdlg;
     HomePageDlg *m_HomePagedlg;
@@ -72,11 +79,15 @@ public:
     QWebEngineView *lLinkWeb;          // L链
     QWebEngineView *adHocNetworkWeb;   // 自组网
     QWebEngineView *satelliteCommWeb;  // 卫通
+    UserLogin *m_userLoginDlg;         //用户登陆页面
 private:
     QProcess *processPDT;
     QString exeDirPathName = "";
     std::unordered_map<QString, settingStruct> m_allSetMap;
 
+    int _currentScene;
+    void emergencySceneShow();
+    void seaRescueSceneShow();
 public:
     void changeBtnColor(int num);
 
@@ -87,5 +98,8 @@ private:
     void initUAVIDMap();
 
     void initNotifyManager();
+
+    //初始化用户登陆页面
+    void initUserLoginDlg();
 };
 #endif  // MAINWINDOW_H
diff --git a/mainwindow.qrc b/mainwindow.qrc
index a9a244e..0985086 100644
--- a/mainwindow.qrc
+++ b/mainwindow.qrc
@@ -38,5 +38,11 @@
         <file>res/switch/switch_close3.png</file>
         <file>res/switch/switch_open3.png</file>
         <file>res/SDFP3.png</file>
+        <file>res/eyesOpen1.png</file>
+        <file>res/eyesOpen.png</file>
+        <file>res/eye1.png</file>
+        <file>res/eye2.png</file>
+        <file>res/eye3.png</file>
+        <file>res/eyec1.png</file>
     </qresource>
 </RCC>
diff --git a/mainwindow.ui b/mainwindow.ui
index cb61ae2..1afbadf 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -57,8 +57,25 @@
     <property name="spacing">
      <number>0</number>
     </property>
-    <item row="0" column="0">
-     <widget class="QFrame" name="frame">
+    <item row="1" column="1">
+     <widget class="QStackedWidget" name="stackedWidget">
+      <property name="maximumSize">
+       <size>
+        <width>16777215</width>
+        <height>16777215</height>
+       </size>
+      </property>
+      <widget class="QWidget" name="Page1">
+       <layout class="QVBoxLayout" name="SubPage">
+        <property name="bottomMargin">
+         <number>2</number>
+        </property>
+       </layout>
+      </widget>
+     </widget>
+    </item>
+    <item row="0" column="0" rowspan="2">
+     <widget class="QStackedWidget" name="senceContrlWidget">
       <property name="sizePolicy">
        <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
         <horstretch>0</horstretch>
@@ -68,138 +85,173 @@
       <property name="styleSheet">
        <string notr="true">background-color: rgb(40, 40, 40);</string>
       </property>
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <item>
-        <widget class="QWidget" name="widget_2" native="true"/>
-       </item>
-       <item>
-        <layout class="QVBoxLayout" name="verticalLayout_2">
-         <item>
-          <widget class="QToolButton" name="toolButton_9">
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolButton">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolButton_2">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolButton_3">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolButton_4">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolButton_5">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolButton_6">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolButton_7">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolButton_8">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <widget class="QWidget" name="widget" native="true"/>
-       </item>
-      </layout>
-     </widget>
-    </item>
-    <item row="0" column="1">
-     <widget class="QStackedWidget" name="stackedWidget">
-      <widget class="QWidget" name="Page1">
-       <layout class="QVBoxLayout" name="SubPage">
-        <property name="bottomMargin">
-         <number>2</number>
-        </property>
+      <property name="currentIndex">
+       <number>1</number>
+      </property>
+      <widget class="QWidget" name="stackedWidgetPage1">
+       <layout class="QVBoxLayout" name="verticalLayout">
+        <item>
+         <widget class="QWidget" name="widget_2" native="true"/>
+        </item>
+        <item>
+         <layout class="QVBoxLayout" name="verticalLayout_2">
+          <item>
+           <widget class="QToolButton" name="toolButton_9">
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton_2">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton_3">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton_4">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton_5">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton_6">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton_7">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton_8">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <widget class="QWidget" name="widget" native="true"/>
+        </item>
+       </layout>
+      </widget>
+      <widget class="QWidget" name="page">
+       <layout class="QGridLayout" name="gridLayout_2">
+        <item row="2" column="0">
+         <widget class="QWidget" name="widget_9" native="true"/>
+        </item>
+        <item row="1" column="0">
+         <layout class="QVBoxLayout" name="verticalLayout_3">
+          <item>
+           <widget class="QToolButton" name="toolButton_10">
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="toolButton_21">
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item row="0" column="0">
+         <spacer name="verticalSpacer">
+          <property name="orientation">
+           <enum>Qt::Orientation::Vertical</enum>
+          </property>
+          <property name="sizeType">
+           <enum>QSizePolicy::Policy::Fixed</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>20</width>
+            <height>48</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
        </layout>
       </widget>
      </widget>
@@ -261,7 +313,7 @@
   </action>
   <action name="toolbar_action2">
    <property name="icon">
-    <iconset>
+    <iconset resource="mainwindow.qrc">
      <normaloff>:/res/GDDC.png</normaloff>:/res/GDDC.png</iconset>
    </property>
    <property name="text">
@@ -273,7 +325,7 @@
   </action>
   <action name="toolbar_action3">
    <property name="icon">
-    <iconset>
+    <iconset resource="mainwindow.qrc">
      <normaloff>:/res/LChain.png</normaloff>:/res/LChain.png</iconset>
    </property>
    <property name="text">
@@ -347,6 +399,8 @@
    </property>
   </action>
  </widget>
- <resources/>
+ <resources>
+  <include location="mainwindow.qrc"/>
+ </resources>
  <connections/>
 </ui>
diff --git a/res/eye1.png b/res/eye1.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c397c7f4aed697385467220e49e8befd8513366
GIT binary patch
literal 7309
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

literal 0
HcmV?d00001

diff --git a/res/eye2.png b/res/eye2.png
new file mode 100644
index 0000000000000000000000000000000000000000..9de3dce0a0860bcf071a40302ddec89d69b8c052
GIT binary patch
literal 6720
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

literal 0
HcmV?d00001

diff --git a/res/eye3.png b/res/eye3.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cd2e1d4fa25a9d58a8d7d9a9863b2d732215459
GIT binary patch
literal 6734
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

literal 0
HcmV?d00001

diff --git a/res/eyec1.png b/res/eyec1.png
new file mode 100644
index 0000000000000000000000000000000000000000..66f5cfeee145056638b7d85135793f66533c8cca
GIT binary patch
literal 5325
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

literal 0
HcmV?d00001

diff --git a/res/eyesOpen.png b/res/eyesOpen.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e50834912db47b271aa1efa265970030a37dd25
GIT binary patch
literal 7673
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
P-B*gTYBE()=E4611vtp^

literal 0
HcmV?d00001

diff --git a/res/eyesOpen1.png b/res/eyesOpen1.png
new file mode 100644
index 0000000000000000000000000000000000000000..01c41839f8172463f3d0480e0c06649ac778dc33
GIT binary patch
literal 8320
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
JHPYsx{{xh$)uR9a

literal 0
HcmV?d00001