#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 #include #include #include #include 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); // 使用类中的get方法获取配置文件中的IP m_urlMap = m_HomePagedlg->settingWidget->getUrl(); qDebug() << "=============设备配置================"; qDebug() << "光电吊舱" << m_urlMap["光电吊舱"]; 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::GDDC: // dosomething break; 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; } }); // 设置栈窗口,多页面共享同一窗口 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; } }