#include "mainwindow.h" #include "ui_mainwindow.h" #include "Src/WebPage/cwebengineview.h" #include "Src/WebPage/CustomWebEnginePage.h" #include "global.h" #include #include #include #include #include #include "Src/HomePage/homepagesetingwidget.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()<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_ModelCameraDlg = new ModelCameraDlg(this); m_rescueLoadWidget = new RescueLoadWidget(this); //使用信号槽函数获取配置文件中的IP connect(m_HomePagedlg, &HomePageDlg::sendUrl, this, [](std::unordered_map urlMap){ qDebug() << "L链" << urlMap["L链"]; qDebug() << "宽带自组网" << urlMap["宽带自组网"]; qDebug() << "机载卫通" << urlMap["机载卫通"]; }); //使用类中的get方法获取配置文件中的IP m_HomePagedlg->getUrl(m_urlMap); qDebug() << "=============设备配置================"; qDebug() << "L链" << m_urlMap["L链"]; qDebug() << "宽带自组网" << m_urlMap["宽带自组网"]; qDebug() << "机载卫通" << m_urlMap["机载卫通"]; 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_urlMap["L链"])); adHocNetworkWeb = new CWebEngineView(); adHocNetworkWeb->setPage(new CustomWebEnginePage()); adHocNetworkWeb->load(QUrl(m_urlMap["宽带自组网"])); satelliteCommWeb = new CWebEngineView(); satelliteCommWeb->setPage(new CustomWebEnginePage()); satelliteCommWeb->load(QUrl(m_urlMap["机载卫通"])); //接收主页面设置窗口的url数据传递并设置 connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOnlyUrl, this, [&](unsigned char urlIndex, QString url){ switch (urlIndex) { case HomePageSetingWidget::L_Link: lLinkWeb->load(QUrl(url)); break; case HomePageSetingWidget::Adhoc_Network: adHocNetworkWeb->load(QUrl(url)); break; case HomePageSetingWidget::Satelite_Comm: satelliteCommWeb->load(QUrl(url)); break; default: break; } }); //接收主页面设置窗口的url数据传递并设置 一键设置 connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendAllUrl, this, [&](std::unordered_map urlMap){ lLinkWeb->load(QUrl(urlMap["L链"])); adHocNetworkWeb->load(QUrl(urlMap["宽带自组网"])); 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_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())); } //主页 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; } }