You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
449 lines
16 KiB
C++
449 lines
16 KiB
C++
#include "mainwindow.h"
|
|
#include "Src/HomePage/homepagesetingwidget.h"
|
|
#include "Src/WebPage/CustomWebEnginePage.h"
|
|
#include "Src/WebPage/cwebengineview.h"
|
|
#include "global.h"
|
|
#include "ui_mainwindow.h"
|
|
#include <QAction>
|
|
#include <QFile>
|
|
#include <QFlags>
|
|
#include <QToolBar>
|
|
#include <qpushbutton.h>
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
|
: QMainWindow(parent), ui(new Ui::MainWindow), mWeb(nullptr) {
|
|
ui->setupUi(this);
|
|
|
|
initFile();
|
|
initWindow();
|
|
initButton();
|
|
// initMenuBar();
|
|
initToolBar();
|
|
initSignalSlot();
|
|
process = new QProcess(this);
|
|
|
|
// apply the qss
|
|
QFile file(":/res/Qss/qss.qss");
|
|
if (file.open(QFile::ReadOnly)) {
|
|
// file.open(QFile::ReadOnly);
|
|
QString style = QLatin1String(file.readAll());
|
|
|
|
qApp->setStyleSheet(style);
|
|
// qDebug()<<style;
|
|
file.close();
|
|
} else {
|
|
qDebug() << "Open file fail " << Qt::endl;
|
|
}
|
|
|
|
QString appDir = QCoreApplication::applicationDirPath() + "/app";
|
|
qDebug() << "Open file fail " << appDir;
|
|
}
|
|
|
|
MainWindow::~MainWindow() {
|
|
delete m_SDFPDlg;
|
|
delete m_GDDCdlg;
|
|
delete m_HomePagedlg;
|
|
delete process;
|
|
delete mWeb;
|
|
delete lLinkWeb;
|
|
delete adHocNetworkWeb;
|
|
delete satelliteCommWeb;
|
|
if (m_ModelCameraDlg != nullptr)
|
|
delete m_ModelCameraDlg;
|
|
delete ui;
|
|
}
|
|
/**
|
|
* @brief MainWindow::initFile 初始化配置文件 .ini
|
|
*/
|
|
void MainWindow::initFile() {
|
|
QString urlFile = QCoreApplication::applicationDirPath() + "/config.ini";
|
|
QFile file(urlFile);
|
|
if (!file.open(QIODevice::ReadWrite)) {
|
|
return;
|
|
}
|
|
}
|
|
void MainWindow::initWindow() {
|
|
setWindowIcon(QIcon(":/res/SDFP.png"));
|
|
|
|
// 设置主窗口背景颜色
|
|
QPalette palette;
|
|
palette.setColor(QPalette::Window, g_themeColor);
|
|
this->setPalette(palette);
|
|
this->setWindowTitle("载荷应用软件");
|
|
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);
|
|
|
|
// 使用类中的get方法获取配置文件中的IP
|
|
m_allSetMap = m_HomePagedlg->settingWidget->getAllParam();
|
|
qDebug() << "=============设备配置================";
|
|
qDebug() << "光电吊舱------";
|
|
qDebug() << "远端ip" << m_allSetMap["光电吊舱"].net.remoteIp;
|
|
qDebug() << "L链----------";
|
|
qDebug() << "ULR:" << m_allSetMap["L链"].url;
|
|
qDebug() << "宽带自组网-----";
|
|
qDebug() << "URL:" << m_allSetMap["宽带自组网"].url;
|
|
qDebug() << "机载卫通------";
|
|
qDebug() << "URL:" << m_allSetMap["机载卫通"].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"));
|
|
|
|
lLinkWeb = new CWebEngineView();
|
|
lLinkWeb->setPage(new CustomWebEnginePage());
|
|
lLinkWeb->load(QUrl(m_allSetMap["L链"].url));
|
|
|
|
adHocNetworkWeb = new CWebEngineView();
|
|
adHocNetworkWeb->setPage(new CustomWebEnginePage());
|
|
adHocNetworkWeb->load(QUrl(m_allSetMap["宽带自组网"].url));
|
|
|
|
satelliteCommWeb = new CWebEngineView();
|
|
satelliteCommWeb->setPage(new CustomWebEnginePage());
|
|
satelliteCommWeb->load(QUrl(m_allSetMap["机载卫通"].url));
|
|
|
|
m_ModelCameraDlg = new ModelCameraDlg(this);
|
|
emit m_ModelCameraDlg->sendNetParam_signal(m_allSetMap["三维建模"].net);
|
|
// 接收主页面设置窗口的url数据传递并设置
|
|
connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOneSet, this,
|
|
[&](unsigned char urlIndex, settingStruct settings) {
|
|
switch (urlIndex) {
|
|
case HomePageSetingWidget::GDDC:
|
|
// dosomething
|
|
break;
|
|
case HomePageSetingWidget::L_Link:
|
|
lLinkWeb->load(QUrl(settings.url));
|
|
break;
|
|
case HomePageSetingWidget::Adhoc_Network:
|
|
adHocNetworkWeb->load(QUrl(settings.url));
|
|
break;
|
|
case HomePageSetingWidget::Satelite_Comm:
|
|
satelliteCommWeb->load(QUrl(settings.url));
|
|
break;
|
|
case HomePageSetingWidget::ModelCamera:
|
|
m_ModelCameraDlg->sendNetParam_signal(settings.net);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
|
|
// 设置栈窗口,多页面共享同一窗口
|
|
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_rescueLoadWidget);
|
|
ui->stackedWidget->addWidget(m_ModelCameraDlg);
|
|
// 初始栈窗口显示主页
|
|
ui->stackedWidget->setCurrentWidget(m_SDFPDlg);
|
|
}
|
|
void MainWindow::initButton() {
|
|
int sizeX = 30;
|
|
int sizeY = 30;
|
|
int FixedWidth = 80;
|
|
ui->toolButton->setIcon(QIcon(":/res/home.png"));
|
|
ui->toolButton_2->setIcon(QIcon(":/res/GDDC.png"));
|
|
ui->toolButton_3->setIcon(QIcon(":/res/LChain.png"));
|
|
ui->toolButton_4->setIcon(QIcon(":/res/wifi4G.png"));
|
|
ui->toolButton_5->setIcon(QIcon(":/res/PDT.png"));
|
|
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));
|
|
ui->toolButton_4->setIconSize(QSize(sizeX, sizeY));
|
|
ui->toolButton_5->setIconSize(QSize(sizeX, sizeY));
|
|
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链");
|
|
ui->toolButton_4->setText("自组网");
|
|
ui->toolButton_5->setText("PDT集群");
|
|
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);
|
|
ui->toolButton_4->setFixedWidth(FixedWidth);
|
|
ui->toolButton_5->setFixedWidth(FixedWidth);
|
|
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);
|
|
ui->toolButton_4->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
|
ui->toolButton_5->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
|
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);
|
|
ui->toolButton_4->setStyleSheet(g_ToolBtnStyle);
|
|
ui->toolButton_5->setStyleSheet(g_ToolBtnStyle);
|
|
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() {
|
|
// QMenuBar *menuBar = new QMenuBar(this);
|
|
// this->setMenuBar(menuBar);
|
|
|
|
// QMenu *menu1 = new QMenu("菜单1",this);
|
|
// QMenu *menu2 = new QMenu("菜单2",this);
|
|
// QMenu *menu3 = new QMenu("菜单3",this);
|
|
// QMenu *menu4 = new QMenu("菜单4",this);
|
|
// QMenu *menu5 = new QMenu("菜单5",this);
|
|
// QMenu *menu6 = new QMenu("菜单6",this);
|
|
// QMenu *menu7 = new QMenu("菜单7",this);
|
|
|
|
// menuBar->addMenu(menu1);
|
|
// menuBar->addMenu(menu2);
|
|
// menuBar->addMenu(menu3);
|
|
// menuBar->addMenu(menu4);
|
|
// menuBar->addMenu(menu5);
|
|
// menuBar->addMenu(menu6);
|
|
// menuBar->addMenu(menu7);
|
|
// menuBar->setStyleSheet("QMenuBar{color:rgb(255,255,255);background:rgb(0,0,0);}");//设置颜色
|
|
}
|
|
void MainWindow::initToolBar() {
|
|
// QToolBar *toolBar = new QToolBar("toolBar",this);
|
|
// this->addToolBar(Qt::LeftToolBarArea,toolBar);
|
|
// toolBar->setFloatable(false);//设置可浮动
|
|
// toolBar->setMovable(true);//可移动
|
|
|
|
// //QAction *actionToolBar = new
|
|
// QAction(/*QIcon("res/主页.png"),*/"主页",this); QAction *actionToolBar =
|
|
// new QAction(QIcon(":/res/SDFP.png"),"主 页",this); QAction *actionToolBar2
|
|
// = new QAction(QIcon(":/res/GDDC.png"),"光电吊舱",this); QAction
|
|
// *actionToolBar3 = new QAction(QIcon(":/res/LChain.png"),"L 链",this);
|
|
// QAction *actionToolBar4 = new QAction(QIcon(":/res/adHoc.png"),"自组网
|
|
// ",this); QAction *actionToolBar5 = new
|
|
// QAction(QIcon(":/res/PDTColony.png"),"PDT集群",this); QAction
|
|
// *actionToolBar6 = new
|
|
// QAction(QIcon(":/res/Kusatellite.png"),"Ku卫通",this); QAction
|
|
// *actionToolBar7 = new
|
|
// QAction(QIcon(":/res/SearchPayload.png"),"搜集载荷",this); QAction
|
|
// *actionToolBar8 = new
|
|
// QAction(QIcon(":/res/3DModeling.png"),"三维建模",this);
|
|
|
|
// toolBar->addAction(actionToolBar);
|
|
// toolBar->addAction(actionToolBar2);
|
|
// toolBar->addAction(actionToolBar3);
|
|
// toolBar->addAction(actionToolBar4);
|
|
// toolBar->addAction(actionToolBar5);
|
|
// toolBar->addAction(actionToolBar6);
|
|
// toolBar->addAction(actionToolBar7);
|
|
// toolBar->addAction(actionToolBar8);
|
|
// toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea|Qt::TopToolBarArea);
|
|
// toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
|
// toolBar->setStyleSheet("color:white;slection-background-color:green");//设置颜色
|
|
// ui->toolBar->addAction(ui->toolbar_action1);
|
|
// //ui->toolBar->addSeparator();
|
|
// ui->toolBar->addAction(ui->toolbar_action2);
|
|
// //ui->toolBar->addSeparator();
|
|
// ui->toolBar->addAction(ui->toolbar_action3);
|
|
// //ui->toolBar->addSeparator();
|
|
// ui->toolBar->addAction(ui->toolbar_action4);
|
|
// //ui->toolBar->addSeparator();
|
|
// ui->toolBar->addAction(ui->toolbar_action5);
|
|
// // ui->toolBar->addSeparator();
|
|
// ui->toolBar->addAction(ui->toolbar_action6);
|
|
// //ui->toolBar->addSeparator();
|
|
// ui->toolBar->addAction(ui->toolbar_action7);
|
|
// //ui->toolBar->addSeparator();
|
|
// ui->toolBar->addAction(ui->toolbar_action8);
|
|
// //ui->toolBar->addSeparator();
|
|
// ui->toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
|
// ui->toolBar->setStyleSheet("QToolBar:{color:white;}"
|
|
// "QToolBar:hover{background-color:rgb(100,100,100);color:rgb(200,200,200);}"
|
|
// "QToolBar:pressed{background-color:blue;}");
|
|
|
|
/*"QAction:hover{background-color:white; color: green;}"*/
|
|
/*"QAction:pressed{background-color:rgb(100, 100, 100);}");*/
|
|
}
|
|
// 初始化信号与槽
|
|
void MainWindow::initSignalSlot() {
|
|
connect(ui->toolButton, SIGNAL(clicked()), this, SLOT(toolButton_clicked()));
|
|
connect(ui->toolButton_2, SIGNAL(clicked()), this,
|
|
SLOT(toolButton_2_clicked()));
|
|
connect(ui->toolButton_3, SIGNAL(clicked()), this,
|
|
SLOT(toolButton_3_clicked()));
|
|
connect(ui->toolButton_4, SIGNAL(clicked()), this,
|
|
SLOT(toolButton_4_clicked()));
|
|
connect(ui->toolButton_5, SIGNAL(clicked()), this,
|
|
SLOT(toolButton_5_clicked()));
|
|
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()));
|
|
connect(m_HomePagedlg->m_deviceStateDlg, &deviceStateDlg::switchToDevicePage,
|
|
this, [&](int id) {
|
|
switch (id) {
|
|
case 0:
|
|
toolButton_2_clicked(); // 光电吊舱
|
|
break;
|
|
case 1:
|
|
toolButton_3_clicked(); // L链
|
|
break;
|
|
case 2:
|
|
toolButton_4_clicked(); // 自组网
|
|
break;
|
|
case 3:
|
|
toolButton_5_clicked(); // PDT集群
|
|
break;
|
|
case 4:
|
|
toolButton_6_clicked(); // Ku卫通
|
|
break;
|
|
case 5:
|
|
toolButton_7_clicked(); // 搜救载荷
|
|
break;
|
|
case 6:
|
|
toolButton_8_clicked(); // 三维建模
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
}
|
|
|
|
// 主页
|
|
void MainWindow::toolButton_clicked() {
|
|
changeBtnColor(1);
|
|
// m_HomePagedlg->move(130,80);
|
|
ui->stackedWidget->setCurrentWidget(m_HomePagedlg);
|
|
process->kill();
|
|
}
|
|
|
|
// 光电吊舱
|
|
void MainWindow::toolButton_2_clicked() {
|
|
changeBtnColor(2);
|
|
// m_GDDCdlg->move(130,80);
|
|
// m_GDDCdlg->show(); //显示窗口
|
|
|
|
ui->stackedWidget->setCurrentWidget(m_GDDCdlg);
|
|
}
|
|
|
|
// L链
|
|
void MainWindow::toolButton_3_clicked() {
|
|
changeBtnColor(3);
|
|
// mWeb->load(QUrl("http://192.168.1.10"));
|
|
ui->stackedWidget->setCurrentWidget(lLinkWeb);
|
|
}
|
|
|
|
// 自组网
|
|
void MainWindow::toolButton_4_clicked() {
|
|
changeBtnColor(4);
|
|
|
|
// mWeb->load(QUrl("http://192.168.1.10"));
|
|
// mWeb->show();
|
|
ui->stackedWidget->setCurrentWidget(adHocNetworkWeb);
|
|
// process->kill();
|
|
}
|
|
|
|
// PDT集群
|
|
void MainWindow::toolButton_5_clicked() {
|
|
changeBtnColor(5);
|
|
// mWeb->load(QUrl("http://192.168.150.1"));
|
|
// mWeb->show();
|
|
ui->stackedWidget->setCurrentWidget(mWeb);
|
|
}
|
|
|
|
// Ku卫通
|
|
void MainWindow::toolButton_6_clicked() {
|
|
changeBtnColor(6);
|
|
// mWeb->load(QUrl("http://192.168.0.2"));
|
|
// mWeb->show();
|
|
ui->stackedWidget->setCurrentWidget(satelliteCommWeb);
|
|
}
|
|
|
|
// 搜救载荷
|
|
void MainWindow::toolButton_7_clicked() {
|
|
changeBtnColor(7);
|
|
|
|
ui->stackedWidget->setCurrentWidget(m_rescueLoadWidget);
|
|
}
|
|
|
|
// 三维建模
|
|
void MainWindow::toolButton_8_clicked() {
|
|
changeBtnColor(8);
|
|
ui->stackedWidget->setCurrentWidget(m_ModelCameraDlg);
|
|
|
|
// 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) {
|
|
|
|
initButton();
|
|
switch (num) {
|
|
case 1:
|
|
ui->toolButton->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
case 2:
|
|
ui->toolButton_2->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
case 3:
|
|
ui->toolButton_3->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
case 4:
|
|
ui->toolButton_4->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
case 5:
|
|
ui->toolButton_5->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
case 6:
|
|
ui->toolButton_6->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
case 7:
|
|
ui->toolButton_7->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
case 8:
|
|
ui->toolButton_8->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
case 9:
|
|
ui->toolButton_9->setStyleSheet(g_ToolBtnSelStyle);
|
|
break;
|
|
}
|
|
}
|