diff --git a/HPPA/HPPA.cpp b/HPPA/HPPA.cpp index bc516a6..9523f52 100644 --- a/HPPA/HPPA.cpp +++ b/HPPA/HPPA.cpp @@ -8,7 +8,7 @@ #include "ImageReaderWriter.h" -HPPA::HPPA(QWidget *parent) +HPPA::HPPA(QWidget* parent) : QMainWindow(parent) { ui.setupUi(this); @@ -65,30 +65,117 @@ HPPA::HPPA(QWidget *parent) ui.splitter->setStretchFactor(1, 1); ui.splitter->setStretchFactor(2, 3);*/ + //×Ô¶¨Òå²Ëµ¥À¸ºÍ¹¤¾ßÀ¸ + QWidget* menuWidget = new WidgetWithBackgroundPicture(); + //menuWidget->setFixedWidth(200); + menuWidget->setFixedHeight(66); + QHBoxLayout* hLayout_menuWidget = new QHBoxLayout(menuWidget); + //auto menuBar_tmp = menuBar(); + auto menuBar_tmp = ui.menuBar; + hLayout_menuWidget->addWidget(menuBar_tmp); + menuBar_tmp->setAutoFillBackground(false); + menuBar_tmp->setStyleSheet(R"( + QMenuBar { + background: transparent;/*transparent*/ + border: none; + } + QMenuBar::item { + background: transparent; + color: white; /* ¸ù¾ÝÄãµÄ±³¾°µ÷ÕûÎÄ×ÖÑÕÉ« */ + padding: 4px 8px; + padding-top: 8px; + padding-bottom: 8px; + } + QMenuBar::item:selected { + background: rgba(255, 255, 255, 50); /* Çá΢¸ßÁÁ */ + } + QMenu { + background-color: #0A1245; /* ²Ëµ¥±³¾°É« */ + border: 1px solid gray; /* ¿ÉÑ¡£¬±ß¿òÑùʽ */ + color: white; /* ¸ù¾ÝÄãµÄ±³¾°µ÷ÕûÎÄ×ÖÑÕÉ« */ + } + QMenu::item:selected { + background-color: rgba(255, 255, 255, 50); /* Ñ¡ÖÐʱµÄ±³¾°É« */ + color: white; /* Ñ¡ÖÐÏî×ÖÌåÑÕÉ«£¬¿ÉÑ¡ */ + } + )"); + + hLayout_menuWidget->addStretch(); + QPushButton* closeBtn = new QPushButton(QString::fromLocal8Bit("Í˳öƽ̨")); + closeBtn->setStyleSheet(R"( + QPushButton { + background: #002CE0; + color: white; + font-size: 14px; + border: none; + padding: 8px; + } + QPushButton:hover { + background: #34495e; + } + )"); + hLayout_menuWidget->addWidget(closeBtn); + + QWidget* toolBarWidget = new QWidget(); + toolBarWidget->setStyleSheet("background-color: #0D1233;"); + QHBoxLayout* hLayout_toolBarWidget = new QHBoxLayout(toolBarWidget); + + //QToolBar* toolBar = this->findChild("mainToolBar"); + QToolBar* toolBar = ui.mainToolBar; + //hLayout_toolBarWidget->addWidget(toolBar); + toolBar->setAttribute(Qt::WA_TranslucentBackground, true); + toolBar->setAutoFillBackground(false); + toolBar->setIconSize(QSize(56, 56)); + toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); //ÔÚ¹¤¾ßÀ¸ÉÏÌí¼ÓÊäÈë¿òQLineEdit frame_number = new QLineEdit(ui.mainToolBar); frame_number->setStyleSheet("QLineEdit{background-color:rgb(255,255,255);}"); frame_number->setMaximumWidth(100); frame_number->setText("5000"); - QAction *action = ui.mainToolBar->insertWidget(ui.action_start_recording, frame_number); + QAction* action = ui.mainToolBar->insertWidget(ui.action_start_recording, frame_number); m_FilenameLineEdit = new QLineEdit(ui.mainToolBar); m_FilenameLineEdit->setStyleSheet("QLineEdit{background-color:rgb(255,255,255);}"); m_FilenameLineEdit->setMaximumWidth(100); m_FilenameLineEdit->setText("tmp_image"); - QAction *action1 = ui.mainToolBar->insertWidget(ui.action_start_recording, m_FilenameLineEdit); + QAction* action1 = ui.mainToolBar->insertWidget(ui.action_start_recording, m_FilenameLineEdit); + + ui.action_connect_imager->setIcon(QIcon(".//icon//all//connect_imager.png")); + ui.action_auto_exposure->setIcon(QIcon(".//icon//all//exposure.png")); + ui.action_focus->setIcon(QIcon(".//icon//all//focus.png")); + ui.action_dark->setIcon(QIcon(".//icon//all//dark.png")); + ui.action_reference->setIcon(QIcon(".//icon//all//reference.png")); + // ʹÓÃÑùʽ±íÉèÖÃ͸Ã÷±³¾° + toolBar->setStyleSheet(R"( + QToolBar { + background: #0D1233;/*transparent*/ + border: 1px solid #444; + border-radius: 6px; + } + QToolButton { + background: transparent; + color: white; /* ¿É¸ù¾Ý±³¾°µ÷ÕûÎÄ×ÖÑÕÉ« */ + padding: 4px; + margin: 0 0 0 6px; + } + QToolButton:hover { + background: rgba(255,255,255,50); /* ÐüͣʱÇá΢¸ßÁÁ */ + } + )"); + + + QWidget* topWidget = new QWidget(); + topWidget->setStyleSheet("background-color: #040125;"); + QVBoxLayout* verticalLayout_topWidget = new QVBoxLayout(topWidget); + verticalLayout_topWidget->addWidget(menuWidget); + //verticalLayout_topWidget->addWidget(toolBarWidget); + setMenuWidget(topWidget); - /*QToolBar *ptoolbar = ui.mainToolBar; - QAction *pAction = new QAction("tangchao"); - ptoolbar->addAction(pAction);*/ - - - //¹âÆ×ÒDzÙ×÷ @@ -135,36 +222,203 @@ HPPA::HPPA(QWidget *parent) //Âí´ïλÖÃÄ£Äâ connect(ui.graphicsView->imager, SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onimagerSimulatorMove(int, int))); - - - // - ui.ImageViewerTabWidget->clear();//±ØÐë·ÅÔÚ×îÇ°Ãæ£¬Ê×ÏÈɾ³ýËùÓеÄtab - //ui.ImageViewerTabWidget->setTabsClosable(true);//ÕâÑùÿҳ¶¼»áÓйرհ´Å¥ - connect(ui.ImageViewerTabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabWidgetCurrentChanged(int))); - - // - connect(this->ui.action_about, SIGNAL(triggered()), this, SLOT(onAbout())); - initPanelToolbar(); + setDockNestingEnabled(true); + connect(this->ui.action_about, SIGNAL(triggered()), this, SLOT(onAbout())); connect(this->ui.mActionOneMotorScenario, SIGNAL(triggered()), this, SLOT(createOneMotorScenario())); - //¹âÆ×ÏÔʾ - QWidget* widget = new QWidget(); - QGridLayout* grid = new QGridLayout(widget); + delete ui.centralWidget; + ui.mDockWidgetRGBCamera->close(); + ui.mDockWidgetSimulator->close(); + ui.mDockWidgetSpectralViewer->close(); + ui.mDockWidgetSpectrometer->close(); - m_chartView = new QChartView(ui.mDockWidgetSpectralViewer); + QString qss_DockWidget_contentWidget = R"( + background: #0D1233; + /*border: 1px solid #2c586b;*/ + + border-top: 1px solid #2c586b; + border-left: 1px solid #2c586b; + border-right: 1px solid #2c586b; + border-bottom: 1px solid #2c586b; + + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; + )"; + QString qss_DockWidget = R"( + QDockWidget::title{ + background: #0E1C4C; + /*border: 4px solid #2c586b;*/ + + + border-top: 1px solid #2c586b; + border-left: 1px solid #2c586b; + border-right: 1px solid #2c586b; + border-bottom: none; /* È¡Ïûµ×²¿±ß¿ò */ + + border-top-left-radius: 10px; + border-top-right-radius: 10px; + } + )"; + + //TOC + QDockWidget* dock_layers = new QDockWidget(QString::fromLocal8Bit("layers"), this); + dock_layers->setObjectName("mDockLayers"); + dock_layers->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + mPanelMenu->addAction(dock_layers->toggleViewAction()); + addDockWidget(Qt::LeftDockWidgetArea, dock_layers); + + QWidget * dock_layersWidgetContents = new QWidget(); + dock_layersWidgetContents->setObjectName(QString::fromUtf8("dockWidgetContents_2")); + QGridLayout* gridLayout_toc = new QGridLayout(dock_layersWidgetContents); + gridLayout_toc->setSpacing(6); + gridLayout_toc->setContentsMargins(11, 11, 11, 11); + gridLayout_toc->setObjectName(QString::fromUtf8("gridLayout_toc")); + gridLayout_toc->setVerticalSpacing(0); + gridLayout_toc->setContentsMargins(0, 0, 0, 0); + + ImagerPositionSimulation* graphicsView_delete = new ImagerPositionSimulation(dock_layersWidgetContents); + graphicsView_delete->setObjectName(QString::fromUtf8("graphicsView_delete")); + QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(graphicsView_delete->sizePolicy().hasHeightForWidth()); + graphicsView_delete->setSizePolicy(sizePolicy1); + graphicsView_delete->setFrameShape(QFrame::NoFrame); + graphicsView_delete->setFrameShadow(QFrame::Raised); + + gridLayout_toc->addWidget(graphicsView_delete, 0, 0, 1, 1); + dock_layers->setWidget(dock_layersWidgetContents); + dock_layersWidgetContents->setStyleSheet(qss_DockWidget_contentWidget); + dock_layers->setStyleSheet(qss_DockWidget); + + //dock_layers->setMinimumWidth(449); + //dock_layers->setMaximumWidth(450); + //dock_layers->setMinimumHeight(497); + //dock_layers->setMaximumHeight(498); + + //ui.mDockWidgetRGBCamera->setMinimumWidth(449); + //ui.mDockWidgetRGBCamera->setMaximumWidth(450); + //ui.mDockWidgetRGBCamera->setMinimumHeight(497); + //ui.mDockWidgetRGBCamera->setMaximumHeight(498); + + //¸ß¹âÆ×²é¿´ + QDockWidget* dock_hyperimgViewer = new QDockWidget(QString::fromLocal8Bit("hyimgViewer"), this); + dock_hyperimgViewer->setObjectName("hyimgViewer"); + + QWidget* dock_hyperimgViewerWidgetContents = new QWidget(); + dock_hyperimgViewerWidgetContents->setObjectName(QString::fromUtf8("dock_hyperimgViewerWidgetContents")); + QGridLayout* gridLayout_hyperimgViewer = new QGridLayout(dock_hyperimgViewerWidgetContents); + gridLayout_hyperimgViewer->setSpacing(6); + gridLayout_hyperimgViewer->setObjectName(QString::fromUtf8("gridLayout_hyperimgViewer")); + gridLayout_hyperimgViewer->setVerticalSpacing(6); + gridLayout_hyperimgViewer->setContentsMargins(10, 10, 10, 10); + + m_imageViewerTabWidget = new QTabWidget(); + m_imageViewerTabWidget->clear();//±ØÐë·ÅÔÚ×îÇ°Ãæ£¬Ê×ÏÈɾ³ýËùÓеÄtab + //m_imageViewerTabWidget->setTabsClosable(true);//ÕâÑùÿҳ¶¼»áÓйرհ´Å¥ + connect(m_imageViewerTabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabWidgetCurrentChanged(int))); + m_imageViewerTabWidget->setStyleSheet(R"( + QTabWidget::pane { + border: none; /* È¥µô°×É«±ß¿ò */ + background: #0D1233; /* ÉèÖÃÖ÷±³¾°É« */ + } + + QTabBar::tab { + background: #0D1233; /* ±êǩδѡÖÐʱµÄ±³¾° */ + color: white; /* ×ÖÌåÑÕÉ« */ + padding: 6px 12px; + border: 1px solid #0D1233; + } + + QTabBar::tab:selected { + background: #1A2B6D; /* Ñ¡ÖбêÇ©µÄÑÕÉ«£¬¿ÉÒÔÂÔÉîÒ»µã */ + border-bottom: 2px solid #4A5FE0; + } + + QTabBar::tab:hover { + background: #141A45; /* Êó±êÐüͣʱµÄÑÕÉ« */ + } + + QTabWidget QWidget { + background: #0D1233; /* ÄÚÈÝÇøÓò±³¾° */ + } + )"); + + QFrame* line = new QFrame(); + line->setFrameShape(QFrame::HLine); + line->setFrameShadow(QFrame::Plain); + line->setStyleSheet(R"( + QWidget { + color: #2c586b; + } + )"); + + m_chartView = new QChartView(); m_chartView->setRenderHint(QPainter::Antialiasing); + m_chartView->setStyleSheet(R"( + background: #0D1233; + )"); + //m_chartView->setBackgroundBrush(QColor("#0D1233")); + + m_chart = new QChart(); + m_chart->setBackgroundBrush(QColor("#0D1233")); + m_chart->legend()->hide(); + //m_chart->setTitle("Simple line chart example"); + + QValueAxis* axisX = new QValueAxis(); + QValueAxis* axisY = new QValueAxis(); + setAxis(axisX, axisY); + m_chart->addAxis(axisX, Qt::AlignBottom); + m_chart->addAxis(axisY, Qt::AlignLeft); + + + m_chartView->setChart(m_chart); - grid->addWidget(m_chartView); - //grid->setMargin(0); - grid->setContentsMargins(0, 0, 0, 0); - //grid->SetMaximumSize(0); - ui.mDockWidgetSpectralViewer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); - ui.mDockWidgetSpectralViewer->setWidget(widget); - //QLineSeries *series = new QLineSeries(); - //QChart *chart = new QChart(); - mPanelMenu->addAction(ui.mDockWidgetSpectralViewer->toggleViewAction()); + + + gridLayout_hyperimgViewer->addWidget(m_imageViewerTabWidget, 0, 0, 1, 1); + gridLayout_hyperimgViewer->addWidget(line, 1, 0, 1, 1); + gridLayout_hyperimgViewer->addWidget(m_chartView, 2, 0, 1, 1); + + gridLayout_hyperimgViewer->setRowStretch(0, 1); + gridLayout_hyperimgViewer->setRowStretch(1, 1); + gridLayout_hyperimgViewer->setRowStretch(2, 1); + + + dock_hyperimgViewerWidgetContents->setStyleSheet(R"( + QWidget #dock_hyperimgViewerWidgetContents{ + background: #0D1233; + /*border: 1px solid #2c586b;*/ + + border-top: 2px solid #2c586b; + border-left: 1px solid #2c586b; + border-right: 1px solid #2c586b; + border-bottom: 2px solid #2c586b; + + border-top-left-radius: 10px; + border-top-right-radius: 10px; + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; + } + )"); + + dock_hyperimgViewer->setWidget(dock_hyperimgViewerWidgetContents); + mPanelMenu->addAction(dock_hyperimgViewer->toggleViewAction()); + dock_hyperimgViewer->setStyleSheet(qss_DockWidget); + QWidget* tmp6 = new QWidget(); + dock_hyperimgViewer->setTitleBarWidget(tmp6); + + + //¹âÆ×ÏÔʾ + + //ui.mDockWidgetSpectralViewer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); + //ui.mDockWidgetSpectralViewer->setWidget(m_chartView); + ////QLineSeries *series = new QLineSeries(); + ////QChart *chart = new QChart(); + //mPanelMenu->addAction(ui.mDockWidgetSpectralViewer->toggleViewAction()); + //Éý½µ×Àdock adjustTable* adt = new adjustTable(); @@ -172,7 +426,6 @@ HPPA::HPPA(QWidget *parent) dock_adt->setObjectName("mDockAdjustTable"); dock_adt->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); dock_adt->setWidget(adt); - tabifyDockWidget(ui.mDockWidgetSpectrometer, dock_adt); mPanelMenu->addAction(dock_adt->toggleViewAction()); //µçÔ´¿ØÖÆ @@ -182,7 +435,6 @@ HPPA::HPPA(QWidget *parent) dock_pc->setObjectName("mDockPowerControl"); dock_pc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); dock_pc->setWidget(pc); - tabifyDockWidget(dock_adt, dock_pc); mPanelMenu->addAction(dock_pc->toggleViewAction()); //»úе±Û¿ØÖÆ @@ -192,7 +444,6 @@ HPPA::HPPA(QWidget *parent) dock_rac->setObjectName("mDockRobotArmControl"); dock_rac->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); dock_rac->setWidget(rac); - tabifyDockWidget(dock_adt, dock_rac); mPanelMenu->addAction(dock_rac->toggleViewAction()); //Ò»ÖáÂí´ï¿ØÖÆ @@ -202,7 +453,6 @@ HPPA::HPPA(QWidget *parent) dock_omc->setObjectName("mDockOneMotorControl"); dock_omc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); dock_omc->setWidget(omc); - tabifyDockWidget(dock_rac, dock_omc); mPanelMenu->addAction(dock_omc->toggleViewAction()); //2ÖáÂí´ï¿ØÖÆ @@ -213,9 +463,69 @@ HPPA::HPPA(QWidget *parent) dock_tmc->setObjectName("mDockTwoMotorControl"); dock_tmc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); dock_tmc->setWidget(tmc); - tabifyDockWidget(dock_omc, dock_tmc); mPanelMenu->addAction(dock_tmc->toggleViewAction()); + splitDockWidget(dock_layers, dock_hyperimgViewer, Qt::Horizontal); + splitDockWidget(dock_hyperimgViewer, ui.mDockWidgetRGBCamera, Qt::Horizontal); + ui.mDockWidgetRGBCamera->show(); + + splitDockWidget(dock_layers, ui.mDockWidgetSimulator, Qt::Vertical); + ui.mDockWidgetSimulator->show(); + + splitDockWidget(dock_hyperimgViewer, ui.mDockWidgetSpectralViewer, Qt::Vertical); + ui.mDockWidgetSpectralViewer->show(); + + splitDockWidget(ui.mDockWidgetRGBCamera, ui.mDockWidgetSpectrometer, Qt::Vertical); + ui.mDockWidgetSpectrometer->show(); + tabifyDockWidget(ui.mDockWidgetSpectrometer, dock_omc); + tabifyDockWidget(dock_omc, dock_tmc); + tabifyDockWidget(dock_tmc, dock_rac); + tabifyDockWidget(dock_rac, dock_pc); + tabifyDockWidget(dock_pc, dock_adt); + + dock_tmc->close(); + dock_rac->close(); + dock_pc->close(); + dock_adt->close(); + + setStyleSheet(R"( + QMainWindow::separator{ + width: 16px; + height: 16px; + background: #040125; /* ¿ÉÒÔÌí¼Ó±³¾°É« */ + /*border: 1px solid #808080;*/ /* ¿ÉÒÔÌí¼Ó±ß¿ò */ + } + + QDockWidget { + border: 2px solid #2a347a; /* ÉîÀ¶É«±ß¿ò */ + background-color: red; /* Ö÷Ìå±³¾°É« */ + color: white; /* ±êÌâÎÄ×ÖÑÕÉ« */ + border-radius: 4px; + } + + /* ±êÌâÀ¸ */ + QDockWidget::title { + background-color: #0E1C4C; /* ±êÌâÀ¸±³¾°É« */ + text-align: left; /* ±êÌâÎÄ×Ö¾ÓÖÐ */ + + /*padding: 4px;*/ + } + + /* ¿ÉÑ¡£º¿ØÖÆ DockWidget µÄ¹Ø±Õ°´Å¥Ñùʽ */ + QDockWidget::close-button, QDockWidget::float-button { + background: transparent; + border: none; + } + + QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: rgba(255,255,255,0.2); + } + + + + )"); + + createActionGroups(); connect(mImagerGroup, &QActionGroup::triggered, this, &HPPA::selectingImager); @@ -252,10 +562,10 @@ void HPPA::recordFromRobotArm(int fileCounter) if (fileCounter - 1 == 0) { - ui.ImageViewerTabWidget->clear(); + m_imageViewerTabWidget->clear(); } - onCreateTab(fileCounter-1); + onCreateTab(fileCounter - 1); emit StartRecordSignal(); ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯ÖÐ")); @@ -372,7 +682,7 @@ void HPPA::initPanelToolbar() ui.mWindowsMenu->addMenu(mToolbarMenu); mPanelMenu->addAction(ui.mDockWidgetSpectrometer->toggleViewAction()); - + mPanelMenu->addAction(ui.mDockWidgetRGBCamera->toggleViewAction()); mPanelMenu->addAction(ui.mDockWidgetSimulator->toggleViewAction()); @@ -474,7 +784,7 @@ void HPPA::onStartRecordStep1() if (m_RecordState % 2 == 1) { - ui.ImageViewerTabWidget->clear(); + m_imageViewerTabWidget->clear(); onCreateTab(0); @@ -501,7 +811,7 @@ void HPPA::onStartRecordStep1() if (m_RecordState % 2 == 1) { - ui.ImageViewerTabWidget->clear(); + m_imageViewerTabWidget->clear(); onCreateTab(0); @@ -530,7 +840,7 @@ void HPPA::onStartRecordStep1() if (m_RecordState % 2 == 1) { - ui.ImageViewerTabWidget->clear(); + m_imageViewerTabWidget->clear(); m_Imager->setFileName2Save(imgPath); m_Imager->setFrameNumber(this->frame_number->text().toInt()); @@ -570,16 +880,16 @@ void HPPA::onCreateTab(int trackNumber) { m_numberOfRecording = trackNumber; - QWidget * tabTmp = new QWidget(); + QWidget* tabTmp = new QWidget(); - QGridLayout *GridLayout = new QGridLayout(); + QGridLayout* GridLayout = new QGridLayout(); GridLayout->addWidget(new ImageViewer(tabTmp)); tabTmp->setLayout(GridLayout); - ui.ImageViewerTabWidget->addTab(tabTmp, QString::number(trackNumber + 1)); + m_imageViewerTabWidget->addTab(tabTmp, QString::number(trackNumber + 1)); - ui.ImageViewerTabWidget->setCurrentIndex(trackNumber); + m_imageViewerTabWidget->setCurrentIndex(trackNumber); } } @@ -596,8 +906,8 @@ void HPPA::onTabWidgetCurrentChanged(int index)// m_TabWidgetCurrentIndex = index; //»ñÈ¡»æÍ¼¿Ø¼þ - QWidget* currentWidget = ui.ImageViewerTabWidget->widget(index); - QList currentImageViewer = currentWidget->findChildren(); + QWidget* currentWidget = m_imageViewerTabWidget->widget(index); + QList currentImageViewer = currentWidget->findChildren(); //ÏÈdisconnectÈ»ºóÔÙconnect£¬·ñÔòÿ´ÎÇл»Ò»´Î¶¼»áconnectÒ»´Î£¬»áÀÛ»ýconnectºÜ¶à´Î£¡ disconnect(currentImageViewer[0], SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onLeftMouseButtonPressed(int, int))); @@ -606,7 +916,7 @@ void HPPA::onTabWidgetCurrentChanged(int index)// void HPPA::onActionOpenDirectory() { - FileOperation * fileOperation = new FileOperation(); + FileOperation* fileOperation = new FileOperation(); string directory = fileOperation->getDirectoryFromString(); QDesktopServices::openUrl(QUrl::fromLocalFile(QString::fromStdString(directory))); @@ -697,11 +1007,11 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) } - FileOperation * fileOperation = new FileOperation(); + FileOperation* fileOperation = new FileOperation(); string directory = fileOperation->getDirectoryFromString(); string imgPath = directory + "\\" + m_FilenameLineEdit->text().toStdString() + "_" + std::to_string(m_TabWidgetCurrentIndex) + ".bil"; - ImageReaderWriter *ImageReader = new ImageReaderWriter(imgPath.c_str()); + ImageReaderWriter* ImageReader = new ImageReaderWriter(imgPath.c_str()); if (x < 0 || x>ImageReader->getXCount() || y<0 || y>ImageReader->getyCount() - 1) @@ -710,10 +1020,10 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) } - float *data = ImageReader->ReadImage(x, y, 1, 1); + float* data = ImageReader->ReadImage(x, y, 1, 1); - QLineSeries *series = new QLineSeries(); + QLineSeries* series = new QLineSeries(); //series->clear();////////////////////////////// QString imagerSelected = mImagerGroup->checkedAction()->objectName(); @@ -751,18 +1061,16 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) return; } + series->setPen(QPen(QColor("#FF928A"), 2)); - + m_chart->removeAllSeries(); + m_chart->addSeries(series); + m_chart->createDefaultAxes(); - QChart *chart = new QChart(); - chart->legend()->hide(); - chart->addSeries(series); - chart->createDefaultAxes(); - //chart->setTitle("Simple line chart example"); - - m_chartView->setChart(chart); - //m_chartView->update();////////////////////////////// + QValueAxis* axisX = qobject_cast(m_chart->axisX()); + QValueAxis* axisY = qobject_cast(m_chart->axisY()); + setAxis(axisX, axisY); /*std::cout << "x×ø±ê:" << x << std::endl; std::cout << "y×ø±ê:" << y << std::endl; @@ -776,7 +1084,31 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) } -void HPPA::timerEvent(QTimerEvent *event) +void HPPA::setAxis(QValueAxis* axisX, QValueAxis* axisY) +{ + if (axisX && axisY) + { + QPen axisPen(QColor("#ACCDFF")); + axisPen.setWidth(1); + + // ×ø±êÖáÏßÑÕÉ« + axisX->setLinePen(axisPen); + axisY->setLinePen(axisPen); + + // ×ø±ê±êÇ©ÑÕÉ« + axisX->setLabelsColor(QColor("#ACCDFF")); + axisY->setLabelsColor(QColor("#ACCDFF")); + + // Íø¸ñÏßÑÕÉ« + QPen gridPen(QColor("#262A4C")); + gridPen.setStyle(Qt::DashLine); + gridPen.setWidth(2); + axisX->setGridLinePen(gridPen); + axisY->setGridLinePen(gridPen); + } +} + +void HPPA::timerEvent(QTimerEvent* event) { } @@ -1031,17 +1363,17 @@ void HPPA::onFocus2(int command) if (command == 1) { //´´½¨Ó°ÏñÏÔʾ´°¿Ú - QWidget * tabTmp = new QWidget(); + QWidget* tabTmp = new QWidget(); - QGridLayout *GridLayout = new QGridLayout(); + QGridLayout* GridLayout = new QGridLayout(); GridLayout->addWidget(new ImageViewer(tabTmp)); tabTmp->setLayout(GridLayout); - ui.ImageViewerTabWidget->addTab(tabTmp, QString::fromLocal8Bit("µ÷½¹")); + m_imageViewerTabWidget->addTab(tabTmp, QString::fromLocal8Bit("µ÷½¹")); - //ui.ImageViewerTabWidget->setCurrentIndex(trackNumber); - ui.ImageViewerTabWidget->setCurrentWidget(tabTmp); + //m_imageViewerTabWidget->setCurrentIndex(trackNumber); + m_imageViewerTabWidget->setCurrentWidget(tabTmp); //¿ªÊ¼µ÷½¹ @@ -1132,8 +1464,8 @@ void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber) //return; //»ñÈ¡»æÍ¼¿Ø¼þ - QWidget* currentWidget = ui.ImageViewerTabWidget->widget(fileNumber); - QList currentImageViewer = currentWidget->findChildren(); + QWidget* currentWidget = m_imageViewerTabWidget->widget(fileNumber); + QList currentImageViewer = currentWidget->findChildren(); currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFrameCounter());//½çÃæÖÐÏÔʾÒѾ­²É¼¯µÄÖ¡Êý //´´½¨ÐèÒªÏÔʾµÄͼÏñ--opencv°æ±¾ @@ -1167,8 +1499,8 @@ void HPPA::PlotSpectral(int state) if (state == 1) { //ÏÔʾӰÏñ - QWidget* currentWidget = ui.ImageViewerTabWidget->currentWidget(); - QList currentImageViewer = currentWidget->findChildren(); + QWidget* currentWidget = m_imageViewerTabWidget->currentWidget(); + QList currentImageViewer = currentWidget->findChildren(); currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//½çÃæÖÐÏÔʾÒѾ­²É¼¯µÄÖ¡Êý ImageProcessor imageProcessor; @@ -1179,7 +1511,7 @@ void HPPA::PlotSpectral(int state) currentImageViewer[0]->SetImage(&QPixmap::fromImage(m_Imager->getQImageFocusGrayImage()));//»æÖÆÍ¼Ïñ //»æÖƹâÆ× - QLineSeries *series = new QLineSeries(); + QLineSeries* series = new QLineSeries(); //series->clear();////////////////////////////// int sampleCount = m_Imager->getSampleCount(); for (size_t i = 0; i < sampleCount; i++) @@ -1190,7 +1522,7 @@ void HPPA::PlotSpectral(int state) series->append(i, m_Imager->buffer[1368 * 150 + i]); } - QChart *chart = new QChart(); + QChart* chart = new QChart(); chart->legend()->hide(); chart->addSeries(series); chart->createDefaultAxes(); @@ -1206,7 +1538,7 @@ void HPPA::PlotSpectral(int state) ////ÏÔʾӰÏñ - //QWidget* currentWidget = ui.ImageViewerTabWidget->currentWidget(); + //QWidget* currentWidget = m_imageViewerTabWidget->currentWidget(); //QList currentImageViewer = currentWidget->findChildren(); // @@ -1266,7 +1598,7 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet() { return; } - + if (checkedName == "mAction_2AxisMotor_new")//»áÓжàÌõ²É¼¯Ïߣ¬ÖмäµÄijÌõ²É¼¯ÏßÍê³Éºó²»´ú±íÕû¸ö²É¼¯¹ý³ÌÍê³É { return; @@ -1288,7 +1620,7 @@ void HPPA::onsequenceComplete() m_RecordState++; } -WorkerThread3::WorkerThread3(CFocusMotorControl * ctrlFocusMotor) +WorkerThread3::WorkerThread3(CFocusMotorControl* ctrlFocusMotor) { m_ctrlFocusMotor = ctrlFocusMotor; } diff --git a/HPPA/HPPA.h b/HPPA/HPPA.h index 9668898..6e4b8c9 100644 --- a/HPPA/HPPA.h +++ b/HPPA/HPPA.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -123,6 +124,31 @@ signals: void threadSignal(QString s); }; +class WidgetWithBackgroundPicture : public QWidget +{ + Q_OBJECT + +public: + explicit WidgetWithBackgroundPicture(QWidget* parent = nullptr) + : QWidget(parent), + m_pixmap(".//icon//titile_bar_bgp.png") // ʹÓÃ×ÊÔ´»ò¾ø¶Ô·¾¶ + { + // ¿ÉÑ¡£ºÉèÖóõʼ´óС + resize(800, 600); + } + +protected: + void paintEvent(QPaintEvent* event) override + { + QPainter painter(this); + QPixmap scaled = m_pixmap.scaled(size(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); + painter.drawPixmap(rect(), scaled); + } + +private: + QPixmap m_pixmap; +}; + class HPPA : public QMainWindow { Q_OBJECT @@ -137,6 +163,7 @@ public: private: Ui::HPPAClass ui; + QTabWidget* m_imageViewerTabWidget; QMenu* mPanelMenu = nullptr; QMenu* mToolbarMenu = nullptr; @@ -160,6 +187,7 @@ private: FileOperation * m_FileOperation; QChartView * m_chartView; + QChart* m_chart; //QLineSeries *series; //QChart *chart; @@ -228,6 +256,7 @@ public Q_SLOTS: void OnGainSliderChanged(double Gain);// void onLeftMouseButtonPressed(int x, int y);//µã»÷Ó°ÏñÏñÔªÏÔʾ¹âÆ× + void setAxis(QValueAxis* axisX, QValueAxis* axisY); void timerEvent(QTimerEvent *event); diff --git a/HPPA/HPPA.ui b/HPPA/HPPA.ui index 23a0843..af71757 100644 --- a/HPPA/HPPA.ui +++ b/HPPA/HPPA.ui @@ -6,8 +6,8 @@ 0 0 - 1194 - 834 + 1486 + 899 @@ -37,46 +37,6 @@ 0 - - - - - 5 - 0 - - - - 0 - - - - Tab 1 - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - Tab 2 - - - - @@ -84,7 +44,7 @@ 0 0 - 1194 + 1486 30 @@ -275,12 +235,7 @@ QToolBar QToolButton:hover { - /* 标题设置 */ -QDockWidget::title { - text-align: left; - background-color: rgb(240, 240, 240); - /*padding-left: 35px;*/ -} + RGB 相机 @@ -380,12 +335,7 @@ QGroupBox:title { - /* 标题设置 */ -QDockWidget::title { - text-align: left; - background-color: rgb(240, 240, 240); - /*padding-left: 35px;*/ -} + QDockWidget::AllDockWidgetFeatures @@ -434,12 +384,7 @@ QDockWidget::title { - /* 标题设置 */ -QDockWidget::title { - text-align: left; - background-color: rgb(240, 240, 240); - /*padding-left: 35px;*/ -} + 光谱曲线 @@ -469,12 +414,7 @@ QDockWidget::title { - /* 标题设置 */ -QDockWidget::title { - text-align: left; - background-color: rgb(240, 240, 240); - /*padding-left: 35px;*/ -} + 光谱仪