From 9cb45d43939c192a61d4fe2800b69ee9f4dd63d9 Mon Sep 17 00:00:00 2001 From: caoyuhui <1152604503@qq.com> Date: Fri, 16 Aug 2024 16:23:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=89=E7=94=B5=E5=90=8A?= =?UTF-8?q?=E8=88=B1=E6=8E=A8=E6=B5=81=E5=8A=9F=E8=83=BD=EF=BC=9B=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=85=89=E7=94=B5=E5=90=8A=E8=88=B1=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=9B=E5=A2=9E=E5=8A=A0=E6=97=B6=E4=BB=A3=E9=A3=9E=E9=B9=8F?= =?UTF-8?q?=E6=97=A0=E4=BA=BA=E6=9C=BA=E5=B1=95=E7=A4=BA=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=9B=E4=BF=AE=E5=A4=8D=E4=B8=BB=E9=A1=B5=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=8D=AB=E9=80=9A=E5=92=8C=E8=87=AA=E7=BB=84?= =?UTF-8?q?=E7=BD=91=E6=8C=89=E9=92=AE=E4=B8=8D=E8=B5=B7=E4=BD=9C=E7=94=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PayloadAPP.pro | 3 + SDFPDlg.cpp | 21 + SDFPDlg.h | 22 + SDFPDlg.ui | 63 +++ Src/GDDC/gddcCmdDlg.ui | 875 +++++++++++++++++------------------- Src/GDDC/gddcSet.cpp | 45 +- Src/GDDC/gddcSet.h | 28 +- Src/GDDC/gddcSet.ui | 82 ++-- Src/GDDC/gddcdlg.cpp | 113 ++++- Src/GDDC/gddcdlg.h | 10 +- Src/HomePage/homepagedlg.ui | 67 ++- cffmpeg_decode.cpp | 4 +- global.cpp | 2 +- mainwindow.cpp | 34 +- mainwindow.h | 3 + mainwindow.qrc | 3 + mainwindow.ui | 184 ++++---- res/Qss/qss.qss | 20 +- res/SDFP2.png | Bin 0 -> 1195 bytes res/SDFP3.png | Bin 0 -> 82979 bytes res/settings2.png | Bin 0 -> 1835 bytes 21 files changed, 890 insertions(+), 689 deletions(-) create mode 100644 SDFPDlg.cpp create mode 100644 SDFPDlg.h create mode 100644 SDFPDlg.ui create mode 100644 res/SDFP2.png create mode 100644 res/SDFP3.png create mode 100644 res/settings2.png diff --git a/PayloadAPP.pro b/PayloadAPP.pro index 05f1bea..9bb6758 100644 --- a/PayloadAPP.pro +++ b/PayloadAPP.pro @@ -14,6 +14,7 @@ QMAKE_PROJECT_DEPTH = 0 SOURCES += \ + SDFPDlg.cpp \ Src/GDDC/gddcCmdDlg.cpp \ Src/GDDC/gddcSet.cpp \ Src/GDDC/gddcStateInfo.cpp \ @@ -33,6 +34,7 @@ SOURCES += \ HEADERS += \ DCFrameCkCmd.h \ + SDFPDlg.h \ Src/GDDC/gddcCmdDlg.h \ Src/GDDC/gddcSet.h \ Src/GDDC/gddcStateInfo.h \ @@ -51,6 +53,7 @@ HEADERS += \ rescueloadwidget.h FORMS += \ + SDFPDlg.ui \ Src/GDDC/gddcCmdDlg.ui \ Src/GDDC/gddcSet.ui \ Src/GDDC/gddcStateInfo.ui \ diff --git a/SDFPDlg.cpp b/SDFPDlg.cpp new file mode 100644 index 0000000..71e8746 --- /dev/null +++ b/SDFPDlg.cpp @@ -0,0 +1,21 @@ +#include "SDFPDlg.h" +#include "ui_SDFPDlg.h" + +SDFPDlg::SDFPDlg(QWidget *parent) + : QWidget(parent) + , ui(new Ui::SDFPDlg) +{ + ui->setupUi(this); + QPalette palette; + //设置主窗口背景颜色 + palette.setColor(QPalette::Window,QColor(50, 50, 50)); + this->setPalette(palette); + //嵌入到主窗口 + setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint); + hide(); +} + +SDFPDlg::~SDFPDlg() +{ + delete ui; +} diff --git a/SDFPDlg.h b/SDFPDlg.h new file mode 100644 index 0000000..8738f28 --- /dev/null +++ b/SDFPDlg.h @@ -0,0 +1,22 @@ +#ifndef SDFPDLG_H +#define SDFPDLG_H + +#include + +namespace Ui { +class SDFPDlg; +} + +class SDFPDlg : public QWidget +{ + Q_OBJECT + +public: + explicit SDFPDlg(QWidget *parent = nullptr); + ~SDFPDlg(); + +private: + Ui::SDFPDlg *ui; +}; + +#endif // SDFPDLG_H diff --git a/SDFPDlg.ui b/SDFPDlg.ui new file mode 100644 index 0000000..84f9cb9 --- /dev/null +++ b/SDFPDlg.ui @@ -0,0 +1,63 @@ + + + SDFPDlg + + + + 0 + 0 + 768 + 440 + + + + Form + + + + + + + + + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Fixed + + + + 40 + 20 + + + + + + + + image: url(:/res/981csNew.png); + + + + + + + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Fixed + + + + 40 + 20 + + + + + + + + + diff --git a/Src/GDDC/gddcCmdDlg.ui b/Src/GDDC/gddcCmdDlg.ui index 0950da2..04d0cd4 100644 --- a/Src/GDDC/gddcCmdDlg.ui +++ b/Src/GDDC/gddcCmdDlg.ui @@ -6,8 +6,8 @@ 0 0 - 1008 - 284 + 1355 + 219 @@ -16,6 +16,12 @@ 0 + + + 0 + 200 + + Form @@ -30,8 +36,8 @@ 0 0 - 951 - 250 + 1121 + 211 @@ -43,7 +49,7 @@ 0 - 250 + 200 @@ -59,7 +65,7 @@ false - Qt::NoFocus + Qt::FocusPolicy::NoFocus false @@ -68,16 +74,16 @@ - QTabWidget::North + QTabWidget::TabPosition::North - QTabWidget::Rounded + QTabWidget::TabShape::Rounded - 0 + 5 - Qt::ElideNone + Qt::TextElideMode::ElideNone @@ -92,7 +98,7 @@ 680 40 100 - 30 + 21 @@ -106,24 +112,24 @@ 10 - 20 + 10 241 - 191 + 161 目标跟踪模板大小设置 - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter - 60 - 150 - 121 - 30 + 70 + 130 + 91 + 21 @@ -137,7 +143,7 @@ 110 - 80 + 70 113 21 @@ -147,7 +153,7 @@ 110 - 120 + 100 113 21 @@ -157,7 +163,7 @@ 10 - 80 + 70 81 20 @@ -170,7 +176,7 @@ 10 - 120 + 100 81 20 @@ -207,24 +213,24 @@ 260 - 20 + 10 231 - 191 + 161 视频显示模式设置 - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter - 60 - 140 - 121 - 30 + 70 + 130 + 91 + 21 @@ -262,24 +268,24 @@ 500 - 20 + 10 171 - 191 + 161 IP设置 - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter - 20 - 140 - 121 - 30 + 40 + 130 + 91 + 21 @@ -351,10 +357,10 @@ - 20 - 20 + 10 + 10 100 - 30 + 31 @@ -367,10 +373,10 @@ - 20 - 70 + 10 + 50 100 - 30 + 31 @@ -383,8 +389,8 @@ - 140 - 120 + 130 + 90 100 30 @@ -399,8 +405,8 @@ - 20 - 170 + 10 + 130 100 30 @@ -415,8 +421,8 @@ - 140 - 170 + 130 + 130 100 30 @@ -431,8 +437,8 @@ - 20 - 120 + 10 + 90 100 30 @@ -447,8 +453,8 @@ - 140 - 20 + 130 + 10 100 30 @@ -463,8 +469,8 @@ - 140 - 70 + 130 + 50 100 30 @@ -479,8 +485,8 @@ - 260 - 20 + 250 + 10 100 30 @@ -495,8 +501,8 @@ - 260 - 70 + 250 + 50 100 30 @@ -511,8 +517,8 @@ - 260 - 120 + 250 + 90 100 30 @@ -527,23 +533,23 @@ - 380 + 370 10 - 221 - 201 + 171 + 161 字符叠加设置 - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter - 50 - 80 + 20 + 70 111 21 @@ -552,8 +558,8 @@ - 50 - 150 + 20 + 110 111 30 @@ -568,8 +574,8 @@ - 52 - 50 + 20 + 40 131 20 @@ -584,93 +590,11 @@ 可见光 - - - - 510 - 10 - 121 - 191 - - - - 亮度设置 - - - Qt::AlignCenter - - - - - 10 - 40 - 99 - 31 - - - - - 0 - 0 - - - - - - - 亮度+ - - - - - - 10 - 90 - 99 - 31 - - - - - 0 - 0 - - - - - - - 亮度- - - - - - - 10 - 140 - 101 - 31 - - - - - 0 - 0 - - - - - - - 自动亮度 - - - - 130 - 30 + 10 + 50 100 30 @@ -686,7 +610,7 @@ 10 - 30 + 10 100 30 @@ -701,8 +625,8 @@ - 250 - 80 + 130 + 90 100 30 @@ -717,8 +641,8 @@ - 10 - 180 + 370 + 130 100 30 @@ -733,8 +657,8 @@ - 10 - 130 + 130 + 10 100 30 @@ -750,7 +674,7 @@ 130 - 130 + 50 100 30 @@ -766,7 +690,7 @@ 10 - 80 + 90 100 30 @@ -781,8 +705,8 @@ - 130 - 80 + 10 + 130 100 30 @@ -797,8 +721,8 @@ - 250 - 30 + 130 + 130 100 30 @@ -810,166 +734,261 @@ 可见光镜头初始化 - + - 640 + 250 + 130 + 100 + 30 + + + + + + + 恢复默认 + + + + + + 870 10 - 121 - 191 + 120 + 121 - 对比度设置 + 透雾模式 - Qt::AlignCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter - - - - 10 - 140 - 99 - 31 - - - - - 0 - 0 - - - - - - - 自动对比度 - - - + 10 - 90 - 99 - 31 + 70 + 100 + 30 - - - 0 - 0 - - - 对比度- + 设置 - + 10 - 40 - 99 - 31 + 30 + 101 + 21 - - - 0 - 0 - - - - - - - 对比度+ - - + + + + 370 + 10 + 100 + 30 + + + + + + + 增益+ + + + + + + 370 + 50 + 100 + 30 + + + + + + + 增益- + + + + + + 370 + 90 + 100 + 30 + + + + + + + 自动增益 + + + + + + 490 + 10 + 99 + 31 + + + + + 0 + 0 + + + + + + + 亮度+ + + + + + + 490 + 50 + 99 + 31 + + + + + 0 + 0 + + + + + + + 亮度- + + + - 250 - 130 - 100 - 30 + 490 + 90 + 101 + 31 + + + 0 + 0 + + - 恢复默认 + 自动亮度 - + - 920 + 250 10 - 120 - 211 + 99 + 31 - - 透雾模式设置 + + + 0 + 0 + - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + 对比度+ + + + + + + 250 + 50 + 99 + 31 + + + + + 0 + 0 + + + + + + + 对比度- + + + + + + 250 + 90 + 99 + 31 + + + + + 0 + 0 + + + + + + + 自动对比度 - - - - 11 - 90 - 101 - 21 - - - - - - - 10 - 160 - 100 - 30 - - - - - - - 透雾模式 - - - + - 780 + 610 10 - 120 - 211 + 241 + 121 焦距设置 - - Qt::AlignCenter - 10 - 40 + 30 99 31 @@ -991,7 +1010,7 @@ 10 - 90 + 70 99 31 @@ -1009,106 +1028,42 @@ 焦距- - + - 10 - 160 + 130 + 30 99 31 - + 0 0 - - - - - 设置 - - + - 10 - 130 + 130 + 70 99 - 21 + 31 - + 0 0 - - - - - - 380 - 10 - 120 - 191 - - - - 增益设置 - - - Qt::AlignCenter - - - - - 10 - 40 - 100 - 30 - - - 增益+ - - - - - - 10 - 90 - 100 - 30 - - - - - - - 增益- - - - - - - 10 - 140 - 100 - 30 - - - - - - - 自动增益 + 设置 @@ -1121,7 +1076,7 @@ 10 - 30 + 10 100 30 @@ -1136,8 +1091,8 @@ - 120 - 30 + 130 + 10 100 30 @@ -1152,8 +1107,8 @@ - 340 - 30 + 370 + 10 100 30 @@ -1168,8 +1123,8 @@ - 230 - 70 + 250 + 50 100 30 @@ -1184,8 +1139,8 @@ - 230 - 110 + 250 + 90 100 30 @@ -1200,8 +1155,8 @@ - 230 - 150 + 250 + 130 100 30 @@ -1216,8 +1171,8 @@ - 590 - 70 + 600 + 50 100 30 @@ -1233,7 +1188,7 @@ 10 - 110 + 90 100 30 @@ -1249,7 +1204,7 @@ 10 - 150 + 130 100 30 @@ -1264,8 +1219,8 @@ - 340 - 70 + 370 + 50 100 30 @@ -1280,8 +1235,8 @@ - 120 - 110 + 130 + 90 100 30 @@ -1296,8 +1251,8 @@ - 120 - 150 + 130 + 130 100 30 @@ -1313,7 +1268,7 @@ 10 - 70 + 50 100 30 @@ -1328,8 +1283,8 @@ - 120 - 70 + 130 + 50 100 30 @@ -1344,8 +1299,8 @@ - 230 - 30 + 250 + 10 100 30 @@ -1360,8 +1315,8 @@ - 340 - 110 + 370 + 90 100 30 @@ -1376,8 +1331,8 @@ - 340 - 150 + 370 + 130 100 30 @@ -1392,8 +1347,8 @@ - 470 - 30 + 490 + 10 101 31 @@ -1402,8 +1357,8 @@ - 590 - 30 + 600 + 10 101 30 @@ -1418,8 +1373,8 @@ - 470 - 70 + 490 + 50 101 31 @@ -1433,8 +1388,8 @@ - 180 - 130 + 390 + 90 41 31 @@ -1449,8 +1404,8 @@ - 180 - 40 + 310 + 10 72 23 @@ -1462,8 +1417,8 @@ - 90 - 120 + 300 + 80 81 51 @@ -1478,9 +1433,9 @@ - 30 - 40 - 141 + 140 + 10 + 151 20 @@ -1495,8 +1450,8 @@ font: 12pt "Microsoft YaHei UI"; - 110 - 180 + 320 + 140 41 31 @@ -1511,8 +1466,8 @@ font: 12pt "Microsoft YaHei UI"; - 40 - 130 + 250 + 90 41 31 @@ -1527,8 +1482,8 @@ font: 12pt "Microsoft YaHei UI"; - 110 - 80 + 320 + 40 41 31 @@ -1543,8 +1498,8 @@ font: 12pt "Microsoft YaHei UI"; - 300 - 180 + 10 + 130 100 30 @@ -1559,8 +1514,8 @@ font: 12pt "Microsoft YaHei UI"; - 300 - 100 + 130 + 130 100 30 @@ -1575,8 +1530,8 @@ font: 12pt "Microsoft YaHei UI"; - 300 - 60 + 10 + 50 100 30 @@ -1591,8 +1546,8 @@ font: 12pt "Microsoft YaHei UI"; - 300 - 140 + 10 + 90 100 30 @@ -1607,8 +1562,8 @@ font: 12pt "Microsoft YaHei UI"; - 300 - 20 + 10 + 10 100 30 @@ -1623,10 +1578,10 @@ font: 12pt "Microsoft YaHei UI"; - 560 + 740 10 - 141 - 201 + 261 + 121 @@ -1681,10 +1636,10 @@ font: 12pt "Microsoft YaHei UI"; - 20 - 120 + 150 + 39 101 - 30 + 21 @@ -1697,10 +1652,10 @@ font: 12pt "Microsoft YaHei UI"; - 20 - 160 + 150 + 79 101 - 30 + 21 @@ -1714,10 +1669,10 @@ font: 12pt "Microsoft YaHei UI"; - 410 + 460 10 - 141 - 201 + 261 + 121 @@ -1726,10 +1681,10 @@ font: 12pt "Microsoft YaHei UI"; - 20 - 160 + 150 + 79 100 - 30 + 21 @@ -1742,10 +1697,10 @@ font: 12pt "Microsoft YaHei UI"; - 20 - 120 + 150 + 39 100 - 30 + 21 @@ -1805,8 +1760,8 @@ font: 12pt "Microsoft YaHei UI"; - 160 - 10 + 140 + 90 61 21 @@ -1822,8 +1777,8 @@ font: 12pt "Microsoft YaHei UI"; - 80 - 10 + 140 + 50 61 21 @@ -1844,8 +1799,8 @@ font: 12pt "Microsoft YaHei UI"; - 20 - 20 + 10 + 10 121 30 @@ -1860,8 +1815,8 @@ font: 12pt "Microsoft YaHei UI"; - 20 - 170 + 10 + 130 121 30 @@ -1876,8 +1831,8 @@ font: 12pt "Microsoft YaHei UI"; - 20 - 70 + 10 + 50 121 30 @@ -1892,8 +1847,8 @@ font: 12pt "Microsoft YaHei UI"; - 20 - 120 + 10 + 90 121 30 @@ -1911,7 +1866,7 @@ font: 12pt "Microsoft YaHei UI"; 380 10 241 - 201 + 151 @@ -1921,9 +1876,9 @@ font: 12pt "Microsoft YaHei UI"; 80 - 150 + 120 100 - 30 + 21 @@ -1937,7 +1892,7 @@ font: 12pt "Microsoft YaHei UI"; 140 - 50 + 40 91 21 @@ -1947,7 +1902,7 @@ font: 12pt "Microsoft YaHei UI"; 140 - 90 + 80 91 21 @@ -1957,7 +1912,7 @@ font: 12pt "Microsoft YaHei UI"; 10 - 50 + 40 121 20 @@ -1970,7 +1925,7 @@ font: 12pt "Microsoft YaHei UI"; 10 - 90 + 80 121 20 @@ -1986,7 +1941,7 @@ font: 12pt "Microsoft YaHei UI"; 640 10 221 - 201 + 151 @@ -1996,9 +1951,9 @@ font: 12pt "Microsoft YaHei UI"; 110 - 150 + 120 91 - 30 + 21 @@ -2012,7 +1967,7 @@ font: 12pt "Microsoft YaHei UI"; 10 - 50 + 40 81 20 @@ -2025,7 +1980,7 @@ font: 12pt "Microsoft YaHei UI"; 10 - 90 + 80 81 20 @@ -2038,7 +1993,7 @@ font: 12pt "Microsoft YaHei UI"; 100 - 50 + 40 81 23 @@ -2048,7 +2003,7 @@ font: 12pt "Microsoft YaHei UI"; 100 - 90 + 80 81 23 @@ -2058,9 +2013,9 @@ font: 12pt "Microsoft YaHei UI"; 10 - 150 + 120 91 - 30 + 21 @@ -2080,22 +2035,22 @@ font: 12pt "Microsoft YaHei UI"; 150 10 211 - 201 + 151 AI跟踪 - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter 60 - 150 + 120 100 - 30 + 21 @@ -2109,7 +2064,7 @@ font: 12pt "Microsoft YaHei UI"; 100 - 50 + 40 101 21 @@ -2119,7 +2074,7 @@ font: 12pt "Microsoft YaHei UI"; 12 - 50 + 40 81 21 @@ -2132,7 +2087,7 @@ font: 12pt "Microsoft YaHei UI"; 10 - 100 + 80 81 21 @@ -2145,7 +2100,7 @@ font: 12pt "Microsoft YaHei UI"; 100 - 100 + 80 101 21 diff --git a/Src/GDDC/gddcSet.cpp b/Src/GDDC/gddcSet.cpp index 639b21f..b2fc636 100644 --- a/Src/GDDC/gddcSet.cpp +++ b/Src/GDDC/gddcSet.cpp @@ -26,16 +26,12 @@ void GDDCSet::initWindow() setAttribute(Qt::WA_QuitOnClose,false); //交付时隐藏部分未开发接口 - ui->label_2->hide(); ui->label_5->hide(); ui->label_6->hide(); ui->lineEdit_playURL2->hide(); - ui->lineEdit_playport2->hide(); ui->pushButton_ConnectURL2->hide(); ui->groupBox_2->hide(); ui->radioButton_NetCtrlTCP->hide(); - ui->label->hide(); - ui->lineEdit_playport1->hide(); } void GDDCSet::initUDPSocket() { @@ -58,8 +54,6 @@ void GDDCSet::initParam() /*"rtsp://192.168.1.160:554/live/track0"*/ /*"rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid"*/ - ui->lineEdit_playport1->setText("10008"); - ui->lineEdit_playport2->setText("0"); ui->radioButton_NetCtrlUDP->setChecked(true); ui->radioButton_NetCtrlTCP->setChecked(false); @@ -74,13 +68,10 @@ void GDDCSet::initParam() ::GetPrivateProfileStringA("光电吊舱-视频连接-显示窗口2", "播放URL", "-1", inBuf, 100, strSysIniName); m_playURL2 = QString::fromUtf8(inBuf); ui->lineEdit_playURL2->setText(m_playURL2); - ::GetPrivateProfileStringA("光电吊舱-视频连接-显示窗口2", "播放Port", "-1", inBuf, 100, strSysIniName); - m_playPort2 = atoi(inBuf);; - ui->lineEdit_playport2->setText(QString::number(m_playPort2)); - ::GetPrivateProfileStringA("光电吊舱-视频连接-显示窗口1", "播放Port", "-1", inBuf, 100, strSysIniName); - m_playPort1 = atoi(inBuf);; - ui->lineEdit_playport1->setText(QString::number(m_playPort1)); + ::GetPrivateProfileStringA("光电吊舱-推流", "推流URL", "-1", inBuf, 100, strSysIniName); + m_pushURL = QString::fromUtf8(inBuf); + ui->lineEdit_pushURL->setText(m_pushURL); ::GetPrivateProfileStringA("光电吊舱-网络控制", "远端IP", "-1", inBuf, 100, strSysIniName); m_myPairNetwork.setRemoteIP(QString::fromUtf8(inBuf)); @@ -177,6 +168,22 @@ void GDDCSet::on_pushButton_NetCtrlConnect_clicked() } } +//推流 +void GDDCSet::on_pushButton_pushURL_clicked() +{ + saveDataToLocalIni(); + if(ui->pushButton_pushURL->text()=="推送") + { + emit SignalStartConnect(6); + ui->pushButton_pushURL->setText("停止推送"); + } + else + { + emit SignalStopConnect(6); + ui->pushButton_pushURL->setText("推送"); + } +} + //保存数据至本地ini文件 void GDDCSet::saveDataToLocalIni() { @@ -208,14 +215,14 @@ void GDDCSet::saveDataToLocalIni() inBuf = ba.data(); ::WritePrivateProfileStringA("光电吊舱-视频连接-显示窗口2", "播放URL", inBuf, strSysIniName); - m_playPort2 = ui->lineEdit_playport2->text().toInt(); - _itoa_s(m_playPort2,inBuf,10,10); - ::WritePrivateProfileStringA("光电吊舱-视频连接-显示窗口2", "播放Port", inBuf, strSysIniName); + m_pushURL = ui->lineEdit_pushURL->text(); + ba = m_pushURL.toLocal8Bit(); + inBuf = ba.data(); + ::WritePrivateProfileStringA("光电吊舱-推流", "推流URL", inBuf, strSysIniName); m_playURL1 = ui->comboBox_playURL1->currentText(); - m_playPort1 = ui->lineEdit_playport1->text().toInt(); - _itoa_s(m_playPort1,inBuf,10,10); - ::WritePrivateProfileStringA("光电吊舱-视频连接-显示窗口1", "播放Port", inBuf, strSysIniName); - } + + + diff --git a/Src/GDDC/gddcSet.h b/Src/GDDC/gddcSet.h index 8d3f020..6450c8e 100644 --- a/Src/GDDC/gddcSet.h +++ b/Src/GDDC/gddcSet.h @@ -19,7 +19,7 @@ public: explicit GDDCSet(QWidget *parent = nullptr); ~GDDCSet(); -private: +public: Ui::GDDCSet *ui; public: @@ -30,19 +30,27 @@ public: QByteArray m_configIniPath; //ini配置文件路径 QString m_playURL1; //光电吊舱-视频连接-显示窗口1-URL地址 - int m_playPort1; //光电吊舱-视频连接-显示窗口-1端口 QString m_playURL2; //光电吊舱-视频连接-显示窗口2-URL地址 - int m_playPort2; //光电吊舱-视频连接-显示窗口-2端口 + QString m_pushURL; //光电吊舱-推流URL地址 MyPairNetwork m_myPairNetwork;//网络通信结构体 signals: - void SignalStartConnect(int a); //信号开始连接 - void SignalStopConnect(int a); //信号停止连接 + /* int a + * 1视频连接1 + * 2视频连接2 + * 3串口控制-刷新 + * 4串口控制-连接 + * 5网络控制-连接 + * 6视频(1)推流 + * */ + void SignalStartConnect(int a); //信号开始连接 + void SignalStopConnect(int a); //信号停止连接 private slots: - void on_pushButton_ConnectURL1_clicked(); - void on_pushButton_ConnectURL2_clicked(); - void on_pushButton_serialControlRefalsh_clicked(); - void on_pushButton_serialControlConnect_clicked(); - void on_pushButton_NetCtrlConnect_clicked(); + void on_pushButton_ConnectURL1_clicked(); //视频连接-显示窗口1-连接 + void on_pushButton_ConnectURL2_clicked(); //视频连接-显示窗口2-连接 + void on_pushButton_serialControlRefalsh_clicked(); //串口控制-刷新 + void on_pushButton_serialControlConnect_clicked(); //串口控制-连接 + void on_pushButton_NetCtrlConnect_clicked(); //网络控制-连接 + void on_pushButton_pushURL_clicked(); //推流 }; #endif // GDDCSET_H diff --git a/Src/GDDC/gddcSet.ui b/Src/GDDC/gddcSet.ui index 9e0e017..5ef7698 100644 --- a/Src/GDDC/gddcSet.ui +++ b/Src/GDDC/gddcSet.ui @@ -7,7 +7,7 @@ 0 0 761 - 387 + 360 @@ -22,7 +22,7 @@ 30 10 701 - 141 + 181 @@ -36,7 +36,7 @@ 10 30 - 53 + 61 21 @@ -72,7 +72,7 @@ 20 100 - 61 + 71 21 @@ -85,30 +85,7 @@ 90 100 - 301 - 23 - - - - - - - 440 - 100 - 53 - 21 - - - - 端口: - - - - - - 500 - 100 - 81 + 491 23 @@ -130,7 +107,7 @@ 10 - 140 + 180 61 21 @@ -143,7 +120,7 @@ 20 - 170 + 210 61 21 @@ -156,46 +133,59 @@ 90 - 170 - 301 + 210 + 491 23 - + - 440 - 170 - 53 + 600 + 210 + 80 + 23 + + + + 连接 + + + + + + 20 + 140 + 71 21 - 端口: + 推流地址: - + - 500 - 170 - 81 + 90 + 140 + 491 23 - + 600 - 170 + 140 80 23 - 连接 + 推送 @@ -203,7 +193,7 @@ 30 - 280 + 420 701 80 @@ -291,7 +281,7 @@ 30 - 180 + 200 701 141 diff --git a/Src/GDDC/gddcdlg.cpp b/Src/GDDC/gddcdlg.cpp index 7493b72..11dee2c 100644 --- a/Src/GDDC/gddcdlg.cpp +++ b/Src/GDDC/gddcdlg.cpp @@ -6,11 +6,43 @@ #include #include #include +#include +#include +#include + +#pragma comment(lib, "Wtsapi32.lib") +using namespace std; +DWORD GetmPid(LPCWSTR ProcessName) { + PWTS_PROCESS_INFOW wts; + DWORD Count; + DWORD i = 0; + + BOOL result =WTSEnumerateProcessesW(WTS_CURRENT_SERVER_HANDLE, 0, 1, &wts, &Count); + if(result == 0){ + cout << "WTSEnumerateProcessesW Error" << endl; + + return 1; + } + cout << "WTSEnumerateProcessesW Success" << endl; + for (i;i < Count; i++) { + if (lstrcmpiW(wts[i].pProcessName, ProcessName) == 0) { + DWORD pid = wts[i].ProcessId; + cout << "find pid:" << pid << endl; + + return pid; + break; + } + } + + WTSFreeMemory(wts); +} + #define CONFIG_PATH "config.ini" -#define CMDPAGEHIGHT 250 +#define CMDPAGEHIGHT 210 #define STATEPAGEWIDTH 250 + GDDCdlg::GDDCdlg(QWidget *parent) : QWidget(parent) , ui(new Ui::GDDCdlg) @@ -54,6 +86,7 @@ void GDDCdlg::initWindow() m_DlgGDDCSet = new GDDCSet(); m_GDDCCmdDlg = new GDDCCmdDlg(this); m_GDDCStateDlg = new GDDCStateInfo(this); + } //初始化参数 @@ -65,7 +98,7 @@ void GDDCdlg::initParam() isStatePageShow = true; m_DCcmdBuffer.resize(cmdLength); detectionAreaSetting = false; - connectFlag.resize(10,false); + connectFlag.resize(12,false); ui->pushButShowCmdPage->setIcon(QIcon(":/res/down.png")); ui->pushButShowStatePage->setIcon(QIcon(":/res/right.png")); } @@ -114,6 +147,9 @@ void GDDCdlg::startConnect(int type) stopConnectUDPCtrl(); startConnectTCPCtrl(); break; + case 6://视频(1)推流 + startPushURL(); + break; default: break; } @@ -139,6 +175,9 @@ void GDDCdlg::stopConnect(int type) case 5: stopConnectTCPCtrl(); break; + case 6: + stopPushURL(); + break; default : break; } @@ -413,6 +452,7 @@ void GDDCdlg::stopConnectURL2() connectFlag[1] = false ; } } + void GDDCdlg::startConnectSerialCtrl() { if(!connectFlag[2]) @@ -420,6 +460,7 @@ void GDDCdlg::startConnectSerialCtrl() connectFlag[2] = true ; } } + void GDDCdlg::stopConnectSerialCtrl() { if(connectFlag[2]) @@ -427,6 +468,7 @@ void GDDCdlg::stopConnectSerialCtrl() connectFlag[2] = false ; } } + //开始UDP控制通信 void GDDCdlg::startConnectUDPCtrl() { @@ -449,6 +491,7 @@ void GDDCdlg::startConnectUDPCtrl() connectFlag[3] = true; } } + //停止UDP控制通信 void GDDCdlg::stopConnectUDPCtrl() { @@ -462,6 +505,7 @@ void GDDCdlg::stopConnectUDPCtrl() connectFlag[3] = false; } } + //开始TCP控制通信 void GDDCdlg::startConnectTCPCtrl() { @@ -470,6 +514,7 @@ void GDDCdlg::startConnectTCPCtrl() connectFlag[4] = true; } } + //停止TCP控制通信 void GDDCdlg::stopConnectTCPCtrl() { @@ -479,6 +524,69 @@ void GDDCdlg::stopConnectTCPCtrl() } } +//开始视频推流 +void GDDCdlg::startPushURL() +{ + if(!connectFlag[5]) + { + process = new QProcess(); + connect(process,&QProcess::readyReadStandardOutput,this,[=]()mutable{ // + QString Output=process->readAllStandardOutput(); + qDebug()<<"Output:"<readAllStandardError(); + qDebug()<<"Error:"<start("cmd",QStringList()<<"/c"<<"ffmpeg -i rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid -c copy -f flv rtmp://182.92.130.23/app/test"); + + QStringList m_cmd; + QString str; + str = "ffmpeg -i "+m_DlgGDDCSet->m_playURL1+" -c copy -f flv "+m_DlgGDDCSet->m_pushURL; + //str = "TaskList"; + m_cmd<<"/c"<start("cmd",m_cmd); + connectFlag[5] = true; + + //process->waitForStarted(); //等待程序启动 + //process->waitForFinished(); //等待程序关闭 + } +} + +//停止视频推流 +void GDDCdlg::stopPushURL() +{ + if(connectFlag[5]) + { + if(process!=nullptr) + { + process->terminate(); + process->close(); + process->kill(); + // 检查进程退出状态 + if (process->exitStatus() == QProcess::CrashExit) { + qDebug() << "Process crashed"; + } else { + qDebug() << "Process exited normally"; + } + delete process; + + //推流进程未自动关闭,手动关闭 + int pids = GetmPid(L"ffmpeg.exe"); + qDebug()<<"ffmpeg.exe进程的pid为:"<pushButton->setGeometry(this->width()/2,ui->tabWidget->height(),50,50); } } + diff --git a/Src/GDDC/gddcdlg.h b/Src/GDDC/gddcdlg.h index f5067be..898c329 100644 --- a/Src/GDDC/gddcdlg.h +++ b/Src/GDDC/gddcdlg.h @@ -20,7 +20,9 @@ #include "ui_gddcCmdDlg.h" //吊舱控制对话框ui #include "gddcStateInfo.h" //吊舱状态信息显示对话框 #include "ui_gddcStateInfo.h" //吊舱状态信息显示对话框 - +#include "ui_gddcSet.h" +#include "QProcess" +#include #define cmdLength 44 namespace Ui { class GDDCdlg; @@ -62,8 +64,8 @@ public: QString localIP; //本地IP QHostAddress localAddr; //本地地址 quint16 localPort; //本地port - - + QProcess* process; //执行CMD + QThread workerThread; //线程 //bool eventFilter(QObject *,QEvent *); //事件过滤器 void mousePressEvent(QMouseEvent *event); //事件过滤器 @@ -79,6 +81,8 @@ public: void stopConnectUDPCtrl(); void startConnectTCPCtrl(); void stopConnectTCPCtrl(); + void startPushURL(); + void stopPushURL(); public: bool pointSelectionTracking; //选点跟踪 bool Is_openVideo; //视频是否已打开,默认未打开 diff --git a/Src/HomePage/homepagedlg.ui b/Src/HomePage/homepagedlg.ui index 10e8af0..06b1a9d 100644 --- a/Src/HomePage/homepagedlg.ui +++ b/Src/HomePage/homepagedlg.ui @@ -20,27 +20,25 @@ Form - - - + + + + GroupBox + + + + + + + GroupBox + + + + + + - - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Fixed - - - - 200 - 20 - - - - + @@ -58,26 +56,27 @@ - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Fixed - - - - 200 - 20 - - - + + + + + GroupBox + + + + + + + GroupBox + + + diff --git a/cffmpeg_decode.cpp b/cffmpeg_decode.cpp index 77b5c5a..f3dca8c 100644 --- a/cffmpeg_decode.cpp +++ b/cffmpeg_decode.cpp @@ -29,11 +29,11 @@ bool Cffmpeg_decode::open_input_file() AVDictionary* avdic = NULL; av_dict_set(&avdic, "buffer_size", "2048000", 0); //设置缓存大小,1080p可将值调大 av_dict_set(&avdic, "rtsp_transport", "udp", 0); //以udp方式打开,如果以tcp方式打开将udp替换为tcp - av_dict_set(&avdic, "listen_timeout", "200000", 0); //设置超时断开连接时间,单位微秒 + av_dict_set(&avdic, "listen_timeout", "2", 0); //设置超时断开连接时间,单位微秒 av_dict_set(&avdic, "max_delay", "3000", 0); //设置最大时延 av_dict_set(&avdic, "tune", "zerolatency", 0); av_dict_set(&avdic, "preset", "ultrafast", 0); - + fmtCtx->flags |= AVFMT_FLAG_NONBLOCK; if(avformat_open_input(&fmtCtx,_url.toLocal8Bit().data(),NULL,&avdic)<0){ printf("Cannot open input file.\n"); return 0; diff --git a/global.cpp b/global.cpp index 9446a3a..fb39b37 100644 --- a/global.cpp +++ b/global.cpp @@ -75,7 +75,7 @@ QString g_PushBtnSelStyle = /**选中情况下样式**/ QString g_ToolBtnStyle = /**正常情况下样式**/ "QToolButton{" "font: 10pt '微软雅黑';" - "color: #2f3640;" + "color: rgba(0,0,0,200);" /*#2f3640*/ "background-color: #f5f6fa;" "border-color: #2f3640;" "border-radius: 15px;" diff --git a/mainwindow.cpp b/mainwindow.cpp index 955bf7c..34e8e9c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -80,6 +80,7 @@ void MainWindow::initWindow() this->resize(1450,860); //this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);//隐藏边框 + m_SDFPDlg = new SDFPDlg(this); m_GDDCdlg = new GDDCdlg(this); m_HomePagedlg = new HomePageDlg(this); m_rescueLoadWidget = new RescueLoadWidget(this); @@ -122,10 +123,10 @@ void MainWindow::initWindow() lLinkWeb->load(QUrl(url)); break; case HomePageSetingWidget::Adhoc_Network: - lLinkWeb->load(QUrl(url)); + adHocNetworkWeb->load(QUrl(url)); break; case HomePageSetingWidget::Satelite_Comm: - lLinkWeb->load(QUrl(url)); + satelliteCommWeb->load(QUrl(url)); break; default: break; @@ -139,16 +140,17 @@ void MainWindow::initWindow() satelliteCommWeb->load(QUrl(urlMap["机载卫通"])); }); // 设置栈窗口,多页面共享同一窗口 + 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); - ui->stackedWidget->addWidget(m_GDDCdlg); - ui->stackedWidget->addWidget(m_HomePagedlg); ui->stackedWidget->addWidget(m_rescueLoadWidget); // 初始栈窗口显示主页 - ui->stackedWidget->setCurrentWidget(m_HomePagedlg); + ui->stackedWidget->setCurrentWidget(m_SDFPDlg); } void MainWindow::initButton() @@ -164,6 +166,7 @@ void MainWindow::initButton() ui->toolButton_6->setIcon(QIcon(":/res/Ku.png")); 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->setIconSize(QSize(sizeX,sizeY)); ui->toolButton_2->setIconSize(QSize(sizeX,sizeY)); ui->toolButton_3->setIconSize(QSize(sizeX,sizeY)); @@ -172,6 +175,7 @@ void MainWindow::initButton() ui->toolButton_6->setIconSize(QSize(sizeX,sizeY)); 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->setText("主页"); ui->toolButton_2->setText("光电吊舱"); ui->toolButton_3->setText("L链"); @@ -180,6 +184,7 @@ void MainWindow::initButton() ui->toolButton_6->setText("机载卫通"); ui->toolButton_7->setText("搜救载荷"); ui->toolButton_8->setText("三维建模"); + ui->toolButton_9->setText("时代飞鹏"); ui->toolButton->setFixedWidth(FixedWidth); ui->toolButton_2->setFixedWidth(FixedWidth); ui->toolButton_3->setFixedWidth(FixedWidth); @@ -188,6 +193,7 @@ void MainWindow::initButton() ui->toolButton_6->setFixedWidth(FixedWidth); ui->toolButton_7->setFixedWidth(FixedWidth); ui->toolButton_8->setFixedWidth(FixedWidth); + ui->toolButton_9->setFixedWidth(FixedWidth); ui->toolButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); ui->toolButton_2->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); ui->toolButton_3->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); @@ -196,6 +202,7 @@ void MainWindow::initButton() ui->toolButton_6->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); ui->toolButton_7->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); ui->toolButton_8->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + ui->toolButton_9->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); ui->toolButton->setStyleSheet(g_ToolBtnStyle); ui->toolButton_2->setStyleSheet(g_ToolBtnStyle); ui->toolButton_3->setStyleSheet(g_ToolBtnStyle); @@ -204,6 +211,8 @@ void MainWindow::initButton() ui->toolButton_6->setStyleSheet(g_ToolBtnStyle); ui->toolButton_7->setStyleSheet(g_ToolBtnStyle); ui->toolButton_8->setStyleSheet(g_ToolBtnStyle); + ui->toolButton_9->setStyleSheet(g_ToolBtnStyle); + //ui->pushButton->setStyleSheet(g_PushBtnStyle); } void MainWindow::initMenuBar() @@ -292,6 +301,7 @@ void MainWindow::initSignalSlot() connect(ui->toolButton_6,SIGNAL(clicked()),this,SLOT(toolButton_6_clicked())); connect(ui->toolButton_7,SIGNAL(clicked()),this,SLOT(toolButton_7_clicked())); connect(ui->toolButton_8,SIGNAL(clicked()),this,SLOT(toolButton_8_clicked())); + connect(ui->toolButton_9,SIGNAL(clicked()),this,SLOT(toolButton_9_clicked())); } //主页 @@ -360,10 +370,15 @@ void MainWindow::toolButton_8_clicked() { changeBtnColor(8); ui->stackedWidget->setCurrentWidget(mWeb); - process->setWorkingDirectory("D:/QTdemo/playerApp/app"); // 设置工作目录 - process->start("D:/QTdemo/playerApp/app/XCOM V2.0.exe"); // 启动exe并传递参数 + //process->setWorkingDirectory("D:/Software/TCPUDPDbg"); // 设置工作目录 + //process->start("D:/Software/TCPUDPDbg/TCPUDPDbg.exe"); // 启动exe并传递参数 +} +//时代飞鹏 +void MainWindow::toolButton_9_clicked() +{ + changeBtnColor(9); + ui->stackedWidget->setCurrentWidget(m_SDFPDlg); } - //更新主界面按钮颜色 void MainWindow::changeBtnColor(int num) @@ -396,6 +411,9 @@ void MainWindow::changeBtnColor(int num) case 8: ui->toolButton_8->setStyleSheet(g_ToolBtnSelStyle); break; + case 9: + ui->toolButton_9->setStyleSheet(g_ToolBtnSelStyle); + break; } } diff --git a/mainwindow.h b/mainwindow.h index d4e85cb..aef7e71 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -4,6 +4,7 @@ #include #include "Src/GDDC/gddcdlg.h" #include "Src/HomePage/homepagedlg.h" +#include "SDFPDlg.h" #include "rescueloadwidget.h" #include #include @@ -48,11 +49,13 @@ private slots: void toolButton_6_clicked(); void toolButton_7_clicked(); void toolButton_8_clicked(); + void toolButton_9_clicked(); public: GDDCdlg *m_GDDCdlg; HomePageDlg *m_HomePagedlg; RescueLoadWidget *m_rescueLoadWidget; + SDFPDlg *m_SDFPDlg; //QWeb *m_qWeb; QWebEngineView *mWeb; QWebEngineView *lLinkWeb;//L链 diff --git a/mainwindow.qrc b/mainwindow.qrc index 047c706..86e1a56 100644 --- a/mainwindow.qrc +++ b/mainwindow.qrc @@ -17,5 +17,8 @@ res/left.png res/right.png res/981csNew.png + res/SDFP2.png + res/SDFP3.png + res/settings2.png diff --git a/mainwindow.ui b/mainwindow.ui index 87d2b05..1b90dd1 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 954 - 594 + 1113 + 572 @@ -20,13 +20,13 @@ MainWindow - Qt::LeftToRight + Qt::LayoutDirection::LeftToRight - Qt::ToolButtonTextBesideIcon + Qt::ToolButtonStyle::ToolButtonTextBesideIcon @@ -36,10 +36,10 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu @@ -57,55 +57,38 @@ 0 - - - - Qt::Horizontal - - - - 40 - 0 - - - - - - - - - - - - + + + + 0 + 0 + + background-color: rgb(40, 40, 40); - - QFrame::StyledPanel - - - QFrame::Raised - - + + + + - + - - - Qt::Vertical - - - - 20 - 40 - + + + ... - + + + + 0 + 0 + + ... @@ -113,6 +96,12 @@ + + + 0 + 0 + + ... @@ -120,6 +109,12 @@ + + + 0 + 0 + + ... @@ -127,6 +122,12 @@ + + + 0 + 0 + + ... @@ -134,6 +135,12 @@ + + + 0 + 0 + + ... @@ -141,6 +148,12 @@ + + + 0 + 0 + + ... @@ -148,6 +161,12 @@ + + + 0 + 0 + + ... @@ -155,52 +174,31 @@ + + + 0 + 0 + + ... - - - - Qt::Vertical - - - - 20 - 40 - - - - + + + - - - - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 0 - - - + + + + + + @@ -221,7 +219,7 @@ 帮助 - QAction::TextHeuristicRole + QAction::MenuRole::TextHeuristicRole @@ -259,19 +257,19 @@ - + :/res/GDDC.png:/res/GDDC.png 光电吊舱 - QAction::TextHeuristicRole + QAction::MenuRole::TextHeuristicRole - + :/res/LChain.png:/res/LChain.png @@ -281,7 +279,7 @@ L链 - QAction::TextHeuristicRole + QAction::MenuRole::TextHeuristicRole @@ -293,7 +291,7 @@ 自 组 网 - QAction::TextHeuristicRole + QAction::MenuRole::TextHeuristicRole @@ -305,7 +303,7 @@ PDT集群 - QAction::TextHeuristicRole + QAction::MenuRole::TextHeuristicRole @@ -317,7 +315,7 @@ Ku 卫 通 - QAction::TextHeuristicRole + QAction::MenuRole::TextHeuristicRole @@ -329,7 +327,7 @@ 搜救载荷 - QAction::TextHeuristicRole + QAction::MenuRole::TextHeuristicRole @@ -341,12 +339,10 @@ 三维建模 - QAction::TextHeuristicRole + QAction::MenuRole::TextHeuristicRole - - - + diff --git a/res/Qss/qss.qss b/res/Qss/qss.qss index 554adb8..2ee9419 100644 --- a/res/Qss/qss.qss +++ b/res/Qss/qss.qss @@ -18,7 +18,7 @@ QPushButton{ border-radius: 2px; border: 1px groove gray; border-style: outset; - font: 12pt "微软雅黑"; + font: 10pt "微软雅黑"; } /**************************QLineEdit编辑框设置*************************/ @@ -27,7 +27,7 @@ QLineEdit{ border-radius: 2px; border: 1px groove gray; border-style: outset; - font: 12pt "微软雅黑"; + font: 10pt "微软雅黑"; } /***************************QComboBox下拉框设置************************/ @@ -35,7 +35,7 @@ QComboBox { border-radius:3px; background-color:rgba(60,60,60,200); - font: 75 11pt "微软雅黑"; + font: 75 10pt "微软雅黑"; color:rgb(255,255,255); border:0px ; padding-top: 2px; @@ -47,7 +47,7 @@ QComboBox QComboBox:disabled { background-color:rgba(50,50,50,200); - font: 75 11pt "微软雅黑"; + font: 75 10pt "微软雅黑"; color:rgb(160,160,160); } QComboBox:hover @@ -60,7 +60,7 @@ QComboBox:on { border-radius:3px; background-color:rgba(35,35,35); - font: 75 11pt "微软雅黑"; + font: 75 10pt "微软雅黑"; color:rgb(255,255,255); border:1px solid rgb(31,156,220) ; } @@ -69,7 +69,7 @@ QComboBox QAbstractItemView { outline: 0px solid gray; /*取消选中虚线*/ border: 1px solid rgb(31,156,220); - font: 75 11pt "微软雅黑"; + font: 75 10pt "微软雅黑"; color: rgb(255,255,255); background-color: rgb(45,45,45); selection-background-color: rgb(90,90,90); @@ -155,13 +155,13 @@ QTabBar QToolButton:hover { QLabel{ color: rgb(255, 255, 255); font-family:"微软雅黑"; - font-size:11pt; + font-size:10.5pt; } /***************************QSpinBox设置***********************/ QSpinBox{ border-radius:1px; background-color:rgba(60,60,60,200); - font: 12pt "微软雅黑"; + font: 10pt "微软雅黑"; color:rgb(255,255,255); border-width: 0.5px; border-style: solid; @@ -189,7 +189,7 @@ QGroupBox::title QRadioButton{ color: rgb(255, 255, 255); font-family:"微软雅黑"; - font-size:11pt; + font-size:10pt; } /***************************QFrame***********************/ QFrame#frameGDDCPage @@ -206,7 +206,7 @@ QTableView selection-background-color: rgba(96, 96, 96, 0); /*选中区域的背景色,设置成透明96,96,96*/ } QTableWidget::item { - font-size: 12pt; + font-size: 10pt; color: #34495E; height: 30px; width: 80px; diff --git a/res/SDFP2.png b/res/SDFP2.png new file mode 100644 index 0000000000000000000000000000000000000000..dca6775fd4ffbf6d2b4a182499c3c71d79c446b9 GIT binary patch literal 1195 zcmXYw2{7AP9LN7Cb+lSL#;kQz(N(cp%c!cWskrJs*0EN*sH2Wy+~Vk}R@;$vr&*;% zB-&{bX||>Ak|4AZl91#t(^}(*B*JPJW7)9}{mgssH}AdQ_xJm~H}5?P@bfsS{+&7m zK_|UDQ9;1o06j=m35-&9tr;*1nL!@cpmw&t1Wb-4AbpV#M61-;i&h4EMgcw{ZeX3# z|0(|uI)*St=$v`kCt}Zt*&_LjNS=ostRlRBKP{ewL0g^vxXOW7(2s|oQn`dqnA8um zVJR1u=GV{*u_HiB=@WhcTA`F9lA>$rls-7Sl1}OsqU(mIW~BvKMkRqo>=dvB61G4x zDU@(#rCiZ!K^?sSOK*L{CwB75z3`-Pg#*IQ%1Ax%AZvleUt#kPoTp&mFUhSL1a5uf z^P`+4HY}Nh!McnyE6cBCko#b}8^ox>&fMxDbR7evt01r{i4%=fE|3u43V=h`=p4`v zO)LO8le;{|TOQ|$!2vI|MqDZ0Mr9Uf+YVyv}K6zMnBpDr_+mF25t80&_tAFUcxwP&7n(E-P zH4&e1sT*^^zP4NNPm~bEeEM1K$2cUy%ICwMIXOM+f4fM`UntI#)7IqKS2endFJkar zyZUBC*T5NcZ0=hVLZ{r|&c-hCTV`NmdZ8HM=QAP=eZHV?xTzSvqP-_bzFh4eD3F~R zP)>Z}zArC#^otLg{{4GXB`02fPO>F7s>eT!xzQZuQvSu>bWP!UymcZq22ye}AxCoC zqg4$?tWuBbl$G%kX>y}n*BXZk;TFn|VOyVbwy8LyZOU5vgh@~``VARUC-KZw%K*$E1FMg(A*p-xrZT#t@GwGydZlf=#mwwGT!+?=SYE`?r3wL|fvP|Ea_wgn(L9Nh!$V|77 zh;P2Xpl8^P&nBJ7Ut?{S;;4oZcDQs$6n|$UBPF7(g(hNk6wzKSV_rquXx-^bYDQ3% z&DZ`jO|qmFJu6`-x7KIKQVf_H%XiPM(kSzJLwmaYn`zP|zNWFwh@LNA1^l35-jAo5 kpK~crCV&O15pGvgvsPCgd_5`-JaWj(%@5Un?bo~i15@^SegFUf literal 0 HcmV?d00001 diff --git a/res/SDFP3.png b/res/SDFP3.png new file mode 100644 index 0000000000000000000000000000000000000000..6356503d960bf5ab32f450244588e50c91b725d5 GIT binary patch literal 82979 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 z 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⪼@fFlr`^WeU?Yt?S?4nX zgXd|%DGaGa>yqFBCfK_KaI-tT#fvRS!JI0U=eQ9KZZnYWCX|cbvAs%zkX6a0^k8I& zc?H)kA3pUE#mE`&Y9hx*@3~&GasR5vo*3d0@22=&1)sS4bq5d`*@4O?c_p1*0Zc4H zxj){!Jgt(OHv4o!-Tb%i6xFujMQ>r)%03NM)+rzy)WN(_2sDGNBcU6&fwG>t3UEQz z^`0^?XI^3s?oWuvV<~Suuo@L$e3s=uAK-awck|6p27}6yEdtPbpH6K{o18a9Zlrqe zp8VFQV0e?t3aK;JR)1@7$>avdO`YXY>QTtPciPHUS0tyFdT3pygN08V8!Jsm;XeL# zzH7$l;mfh_BEj`Ye#mE?oP(4c{#$IBvwvu`&CX5eAz2sLCOd&y87-$l-@guTu*Wvd zX0*7>tDZC&UnrZmT@B1Sh9xt4KGNLtv?-&aTl^ya6Y|;xPQgE0j{Svk;=bY6)_ZP; z2{`zPh`MpkSJk=Rpwgps!SltDC)u%3Yy)Bqg1tMIET8g%*K83i1cZk6@nuh$DA-r`%tlq{H`zL$9cRTUHpB7?NS| zHmCDJn%_as$on6!6ag!RylYt+2(u9W6Sc4RruA_188WR3n8ntTUrro%WRV#h&Bo`D z|CI7KGp=^M-B~CqleIfv1Vp{p^KhZDMK7NrvCOrO26SqTUf)Y7vxVv>tEG{9XfoAfgoi^rVzJxa-v&xL`VV zIt6_lYL97EUSqN;Cj+3?5BY-4vu!{YMUjkN1u)IOaV-F*0{{gA z@_7Y?EdGGkgj=yaMqcFPh#G*eg1Pr;V+I3|8+5?na~&;H5NTfpia%#+WD+72Wi7Mt zpog5)&7#8s=h5Z&F{8M0a)G5?g{OI=jVc1Sl@mRpG{y&qRIAEV|1TTuCCKl!85DuofNORkJ1)}1mbQYfiHz|#I|Y}$2qMtz`fgi<$f4@+XJN#oGECsYD94dR(}}2bF=li zTj9@&e#$vb;KOL1a6h6_KoX3s*cG#}-XOyj2MbNKI~V9aHic56#(to&<0UyigBvMa zhi#p@OSss!UniAj^jY#<#!QwQ=)@~JJovovfIxvPS-%CHp?~0PFY3Qx{W7A;1SrWP zaQ`9R)1M7Z2N$8O*?x-_P?}w^0;CqBQUXBcAt@dF1)pMF>BthU0%+ZO`u`FMg27=L zP5>sXr0WqL^gMO;HaJLMY5{k6O7xZgi`GxtU3G zkS~Sl%}6py@`y7nN1Z-3iq!O${&bNG#K5PMF60A$%ItWh>2?}u=4om6-u>?D+&#&K zCEP4QC(%`$sl9Po`NfjXVG0F=xSXW%_JL_Bn2q!z{?)K*VK-zoH`@m&&FCzYzN`@t z%5X<6*bY@f)^&p=X9kN)5=)>S%wK++X*i(?U4B#%{PH}FzNm=dc$WWGn76n5Y8Z2GtchPZ6rD zv(HfufT5LEC{W4=I{r~K_*%%guiQhM}Ddj%Sij0qPN*ibY{nm_OharI0^sBBanpLyzC?J&YA zFtc1YA7?AE)-mNbMi@sdW65o7V`&7|sd*(*lVR@TA{>DfENI#DT+ToEZCLRa%r`s~ z$xpP~NM>D)qSh?il4WxrVa;(4A7e>Zj4SDr%6L*g7L5}@=dYqHQY#w4YV>Gyy1xP8 z2!irzp632_(tc1cF$hw1LW{wTl!3GeV6>mUTcU%f$M2rl$8$lGx5px_yFK1z42;l8*C@ z{RevAoAt*-E#phXsi`fUd06|mk_3?RNB9tiRP4OKJp8=iY_GEv*SFmA=loZ5YS?4q zT@r$}{blm2I<6N6wpiZt%=@drO*FyXgdY86 zj3UkP`y5E|>uP@9ULAUAr2^v2QFW2vl4|K=Pu9KjUmTYNRQ%iZR5}%hl6Y|G!Yc6b zsC6ZZ=F4{%Jvg9iKd+dLmkwrLr^UFxZa#mVZ8MBOO6y|2uoG_{Z(oAhPddi?AL^aB zi5_b72pLMx>F@f+*OpCcQKr&*q*8kXCaPp>)jiK<-_x0$s#DG^4VGTFK^wEHNuQN@ zFiCoU#@^rukn={jfVL%Nn!Qy)v32gQ~c&-9}B#?JN*(heWep2aity6a-|#TgSXx@ySVltAcOSEVeY0; zckCqnCYc9v#b3F36uOlSq011vxl#BY%p8=xci3~50_ksry*vpA(gly}HtRwNRO;!N zL3Pxk?*|uI*~-IO|H6~a%3&{xX1Q`gb$`XJ*`5faJwc+eLRTvhho=26fI#^Ur9+by z52wWvB7$FXSdadnQT6?l1(=-p{HV(uk&M^*eHyPNDhDt1`Z)2bcLm}V6DqIW+G5mL zMEk&=hfDdoSoq)Ib-gA5#rfSMAU0`2E;4ow0y^Ijcf!xsKVphrH|jCU)#$2`jFfss zqIP&;&v{{Pyf8Q~%$rT`^JBft=)$lMVfgMr@%olcd*Y z6(Hu56*J=tlS#EBswlftBq1l0o`~BuPf98+Qm9d`nyFvShE{5t=>czoz;Pxnp!srN zpy*9I#s}0sB|*BdokF~S{5kyW(yluoXnc9T6Pm_%$xhv}nc{m+xserjj+jn2P`finGKFY9j69UR=VQ^nFUE6dKa0*Px z9mVs0fj$gasDnQ2mHnrbX_=p7JKrH|^E%6bt}-asvG~xhC`r7kD}{rlPlcX*y^!E9 zuTdOMDa6XO_|(T-$3l{h5p}A-&LocGu(xV+O_90vBcDV-4COZFnq}5%NMwS)&C~8V z5t5;fAKgS&wyFUqzMRYI+8tm~ORxl3DxC?;&H`o!b5jGnPL+VbP9<@Zf?^Y&!QNGM z!!(`u){B1Rv4d=G%BJpH>DVYiRM)3|Eg(l?X#;0Qfiexlw4WCv?fC0}71+@91(*}J zu<+Mn=h2dUhy90;E-oNOb8%{q)sfSkI+4^JDS|N)i+fZ7Tk{L<8;kqdfvY!=7!mVh zXpFzZWB-wWn{od@Y4FM<>7^ay$i4R1K5|hXa6DfhKRsk_KmMNa`CEwi^+%oxp@Z0+ zO=N9F5P5c`nvctvzvq$sc*u`yKzOLg=iEU5I@f7k?vhJwac9*(hCfe(q zT^)ZF+055#@mx;-$s5rgUGdY{NtvA=QDShl_&`Mp@%DOYMEhGvL$?Y|M_0M{`7;Wa zrNh$Je^!QNdlMzbBHuLVMWvclBKI)?;jcQ3!84nR-BYX#&*fNqFxV?G!YdC+jllfr zme7o6b;mlmJhh^APAPa(E*xRnvszqx4c*js{UpFIdw*^^c%`XuoXu@p_~9EEoX+b@ zBu7T6)#~H%7w<=i>`ETyl*ap!1Iz;uKt7-xdgfcdLFr4#+%+nOy>RaIV_u@QjIwK9 z?$>IYm0AvBROaWV%px0aP_3@wrg_J>YUixP$*j+%R^Ud{f+NcOSliuk0cpGgAg|^I zqH1n++iU3du6}GF1==w$H>)MYI_YmK2^nr$#W%g&?T1;zBnnk^vg(W(-r8b{ZxOkE|dNYx6=`h{r()KJe$U+RLk7}tqS1`RE(UNjnO35Sj z+sB<&sO>!8dbMHJxcTKu{(AiIuv{05bpT3XyQoETVnp$6lL>X46r^W#DLRRN=2%Q} z`B7!(3Yo@%D6GbWR3e?OEoFwo=RtetL8o+GZ@n?EviVzud~%M1eHc$d*@S)eWIya< z{2~{d&f=>Y)co8ZyX*Ouy|T@QyD2)lKhGvf*c0x4AH=~yC_?r``k7*Hg6Rm_gG6*I z8C%zT_=8q>S*u;F=)k~m+gh~jm5TkO$Gq@<=Rtp8n?O*e``P!}m)v<*+($zpZKXd0 z-g^AXm5|~58B`r`SvuWXR@^?#V?PoV^rO@7W~a|};V0GJsndR7nFMS|e)oZm-FXfG z{IX%{`@&56HlTcRX~DHZRXadUjDMYRZKm0^QTuwBb-~fJvMGCi)_c1G4Zk@y)#+%c#wt*O1W3TbZNoSR96Dh`;(To_v+&0`u)qUFLi7Z@+R$XpQ#J z+5U$9){ z7hcPOh2T<)-M!b+9CNq2)5WvjJcqf1OUwsvjay5rLe}EKPXvOJS_}Nn=KKT#(_~J& za>(1-N5yJxDy@pW&%YU$FSz1~Vo3f*683a~{Crl?}JO9`e6aL}>lTDYXBZb?1|M*5^(bRqYWcXIUACV{Sn!>8BbNr^Y7f{GmsM5f7CbI?{Ne?z?aj)g}-;<+Jl8 z@8s&oWIDDB@nWV8)4hqeCkO6&o7fN~A$OnCj3thN&>w)N%M#g`DgY~gITH2F2%$(L z4!;sWY?HMvK@-uqx_a$`E>0U;;`L&Ov8D$^3Ex^0Ee@U!^x+D4YG&UBPRDEscxvxl zJZ&L5d)=w!6?9lhdA8A75;WGXRvLEp;3;k7MOXMK;@qt+?P9~$veE0vwRYqp#I^F* zmnP#Ymxgg%D(Nk(8mV^)t+vycvjjzE0?dk4 zj4c)$%R#Yw;Cu?^)yeWjL>K-jBns!qIy{IU$e(gKFMAjLf=(a23Fj1C4nU64 zO5$PvGZ08ae4=b`v;$#^pzeeaR>?K=7-io-&3fiG)fZY+DKFWU5Xsq8#FIA?KRW`K zyQX&#NT&o+6!4;Vr!eA~OF1hoc#WyVznxaucR>@ht)Pi;%?(9oHYvJWT|g$yx~ft! z_!PCul&PYK5e|xNKRaX${$OkZNfw|uSiAwVmK`s+AL&iq^ef}9DL@Nix*w@Xfz@0c zg|yvSPSb`%cIbg!?s#1Z=~?lguj?V-NY|qxvhG5o4YP94?tT_v*lj~^(Z`4n6va;l zaYQWeCZYrU0#!LEPRH2%Wme^RpKg8S{E(|l_Zm3RAHymLY%=cm^l%uJY8H5 zz+b4Kc*d9Q72`?6=9cmTS=woh?UYPw!bPbgA+vLD;)g$XHc&cBhotjsEb{AM>Qkt; z-SMfi@`YuBL{0qJ!``cbGPZ%X91P;QHHqIn>c^dWX?graTC{tVvdexwlUTw9r*ALA! z#+un&={rs;5(mBMz~W)_w4MI$bnTyg;0cgefLnMSK8yORQnfW&AV)Nmhu-Oi`%Pod zQhp*1j|EZ2HbpmFYZlNY&)`swcvk$?x3F(%diWU3oq?Bo{w9M?LwOmBrFktIU?D1c z{MY-HAB^q8mOE$FF&_sO4vPK^SMS6~qe^Vk+mHKk9G4?$sHOrcl%#a3?*C0mZwlkDYPv1fE(987I;l<*&_SjV8Fngh_*DT4#iBR^3y$_F$+f?D zWhGL=M9DZ9U7%Kyt5*6*tWcl1zxaM|WH~-mgWqIH?4)IaQ}0j*k5C${L!)m~L}>Z6 znq)ltc+Ddah;`b?_xRFzYRlBO5lHh9Cr+BlKi*^PM$=Mth$3&^WYP-{JZb7=|Y zvwRQxMv-@OW}^ixjT`moK{3Wtc@NSkuZb{5^7z}MmOMPFO>gs&g} zHxfF)mQAwtlC;G|YCU?g3<#SvUVr`V9pUcqQg1*;FYQ5Av*QxGq3L#N5`JGQ08-nB zqtzxKrZOfo8+iRK*@Ws`-DIS%M(j<`9k2@hxoSp+=yR!&sn5f;Q6DB<-v&8%(SwNh z$Td+lQed`BMQ*^JEtWw0BH#L-D%q-+FLePI0NBxUkmy0_@Zwlca}Zu|?UKytb?%mRh30*g*=KGO5lKCieZADch%GfN{>s59*0&z~b{h zr*TM~F(9?igsUP!uo=GM4`w?7N*t#e3Zwa3Oox(GbkW)iKal9x(#!K<56L_ZMO~-sHy&Bn!nH+tAJi}z*)wVfR<0f z=62*6JOs{fWv=HA{33N>N427`Y%-!fnS15Kr zNx`zuz{9|y9Eb{hfScl-lFl-{tIWgpQHc(PyPBjZ#|s9m3I@!wv539MM&LBO+}ym} zf1>HHJ|||crJ2aAZjaL}grEwvJn_e4hf{TjLzu3{o<=M$JsbE35wj`qNH93MtACC{ zMddY?&Tm}J1&uV<`~M#4zPZaPXF^t;R6@nbj!~8*x=dU3Fn>}GsKB$C(v@(>0zT1a zCD(?9PXSYe054j}R+NCJ-eo=dPw=s#9V%lsH_;?>)v(A{5#sl?V03*7$i@!?*>ngy zy(F9!0SYQD6uP(&9bSY!FGRcjH>%hmuO;JzniWz^IcpE7KU7C3UED{c?{BV#{OifW zr|U@xg~=od7z7O63t|){Yu^UCAi!i$q^Q=g((^PvQaG)sJ8EwA6+BC3i)ikDtrF4v zg+||9ck_MM?|{~SO#-qY68#m;>p7pj;4_V0`oE%OWKmu?&fug0txY!i~Of zr{qKUG}B)*7d_6f-rgE_{@icH^_#|Ne}3V)kl4Y`M9GcG6o2QVnP>R#lmRX&N#c*U zsty-7(WKQ4hgx_dE_4~&2)jhlc_l0sV|c~dhX)rsA(p@w7!;x36?M1X&?)>t^>1W9 z;52+S2BoMQRiHPstJbB|u3pCgr5PB^p z9t615>4z3RttF^zI99($m=!`;ihX1p$5;f{r4WgN55O1Rw zvAy1(@dk`7sj56j!d)BBqHBcDbZ`t@r32JzN@U)Fkfp4B!Ssz>7GIx51qN28N)m1?R!B|lpG z78jcdQt20=r~*`lHE2k@F$57L(vY2h!&&(^oT7-E&3Ku~Xgy!^0X|ML8t^7lbh!0} zQB4QR6s-Cq$%HWe+>0<`bomsDnU)xxmk zrv=(r^j?&rQ#h||cZ3G^QXlnd$p%&t%hUavM*Ph#GXQh+Ht{LE=dOiEwGE>xVG#-5 z+97e01lxy-4{9(?jIS+urQ4*D z8tUD?L7M>kbv;N_4YCn~XH*#S730XYeB~)Hw%7O} zL_f9vyq~2n=$apy5`daL&IB6ABMrX?l)QRRy`~5^0FcMO^w-o(bDvl_9Gj>mCxh(4 zk`wQCR)2a7_IPPkY3~T#iCzEo@5Y4mqvgt3JK4!Yo_-OfJ2}|#TV#-OZl<52Y#(p-_e)B{uMOdBvT@S@I--p*7Mc+3!6wD{e zX)uiH$FyFyJDpGcdxtI*(qZN;36nyPHzpt01-#;>uT=*?-1j_!gfkq09Y_i>HLWH9 zaCTVEAfyHhtYdzwu-q5XrKC4okN@y=RGhF%a3X(a_u>6vS*3kx@QtoHkJ3{YF9Ol| zKhs2XbmevsA2g-F%usc3Aiuu422gXd2a)$>{AW36?Yf?mO`OAq*8&lKyy?T#YLd zQWe+y;`+FAPE{l|FZClrivWWS0E$+m*13mmgE0Uz{`)FtqAv;kb(Yt!S{3QTlLn%vsa{Y9 z#@F`%vh(fg_{?+*AOGaXf9K(UpZ^Px*PZMvNHnQ3ztYJA0K})Z!}|6A?7VKh!@|45*+O zjl_ufNEBm)q8KGKzCa*8Vxq>F81Ru8i4Q=@1-+fU79~&>NFZtyY_yi!&zpLO?R9UT zcfd)%I6&bY}jb5(t;D!2qROu+CAIEEhq(=@MF zO1%{)2O#1NmSw#i2g6IZYB_+2u24$7gosUXoL5S9BjO#*{Bazda=L*DFbqTQ>FL?g z-QE3{mm|q!a)RSH_X2?YDmj*GnzlTX$?Wt3ZE9*dzOk`!qHWvRAjSg`U>L?4M4SZx zKLS8IGr!;lZWzXVM0^MUP6=W>g3Lap)DqjapL5eCqIm%DAOM`9lv-=s_G~{Jz621F z+{sdd>m0{v&t|h+2%OTLIAkd&tQeFzo%*1(o80^S@3jSzev+G3H+)O{Q1nh zJaP^oqOnS;%^uJ34gmNY0GcZlSXh`Y05}c+Cb}sW@<$sp?~RlLh-fhY$ds<-v4oi) z4ov_NB>_ODSVJvG4*-7xfXsr7TO4I`01>SQ0N*51Bjl`M=34_3An$Mh_^3vL3+m=H zx3z@p3?QO)05Bsca*fEXXXetk#L$8W5zWkJ)mLjIsIYF{!pyG?R2nn`QmIs3Z*T7= z07!*Jt`YfkeSQ7ZbUNKv^mh;eM07s@JY6HfM0IlkGcOxLKr)$ZbR0((7Ne4aFw)Gt1)@co5Om`CRmV zV1?j-svloqr{jQa9SR{bpFbf-kz1$D`=F=do@=)321F?ot(?%wnYr!0cNhq zE0u^A0KijW{Rq-n2~rUG6aX%bV0?yUSs#SebCWksb9z2=uaAJWftfG!((@(2FpO=8 zI616wrPLVPwto$)=O%9$#z~0yOIWOY0{$+afX|La01@p6fRQ1MZ)fJSLh5*m6VdmQ z5<+4gVCGRrf`CqD)TrMpbi9{l$lsZS#v=*h*<@t<1HUf5FmHPVn6VvJR z?}G@CKMccIfr!HX|8^*)I&9lMROcA<7BEe-St<1u0C=vSYnYw=hx-HBk%2LkYmNO>pN;7fJ!~NO)N-n^Net zENf{X0z`<2q#9e%Ep4@e3xJztX4k{oWh+94VN65B4+DT7^&XRJh`i@t86{d zw zFC)GLh_Y##TmavVh#j(~FD-ZJx_+vrX|jHZ+fDNFSDGxv6Qljz-Qtk4nd~8yQnHdA zFE`1uEb?PG5CH-r-Qz?ekuA2B%K;a