diff --git a/HPPA/HPPA - 副本 (2).ui b/HPPA/HPPA - 副本 (2).ui new file mode 100644 index 0000000..094d598 --- /dev/null +++ b/HPPA/HPPA - 副本 (2).ui @@ -0,0 +1,861 @@ + + + HPPAClass + + + + 0 + 0 + 1486 + 898 + + + + Spectral Insight + + + + :/ico/resources/icons/ico/Spectral_Insight_128.ico:/ico/resources/icons/ico/Spectral_Insight_128.ico + + + + + + + + + 0 + 0 + 1486 + 30 + + + + + -1 + + + + QMenuBar{ +background:#F0F0F0; +color:rgb(0,0,0); +font-size:14px; +padding:1px; +border:1px solid rgb(165,171,184); +} + +QMenuBar::item{ +background:#F0F0F0; +width:30px; +height:15px; +} + +QMenuBar::item:selected{ +background:rgb(185,196,221); +} + +QMenu{ +background:rgb(255,255,255); +color:rgb(0,0,0); +border:1px solid rgb(165,171,184); +} + +QMenu::item:selected{ +background:rgb(69,123,255); +color:white; +} + + + + + 文件 + + + + + + + + + 光谱仪 + + + + + 宋体 + + + + 选择相机类型 + + + + + + + + + + + + + + + + + + + + + + 帮助 + + + + + + 窗口 + + + + + 扫描平台 + + + + + + + + + + 应用场景 + + + + + + + 数据处理 + + + + + + + + + + + + + + + + + 0 + 0 + + + + + 宋体 + 2 + + + + 相机控制 + + + QToolBar{ + + background-color: #f5f5f5; + color:rgb(0,0,0); +} +QToolBar QToolButton { + background: #f5f5f5; /* 按钮背景颜色 */ + font-size:15px; + border-radius: 3px; /* 按钮圆角 */ + padding: 4px; /* 按钮内边距 */ +} +QToolBar QToolButton:hover { + background: rgb(185,196,221); /* 按钮悬停背景颜色 */ + color: white; /* 按钮悬停文字颜色 */ +} + + + + TopToolBarArea + + + false + + + + + + + + + + + + + + QStatusBar +{ + background-color: #0D1233; + color: white; +} + +QStatusBar::item +{ + border: none; +} + + + + + + + + QDockWidget::AllDockWidgetFeatures + + + 3D模型 + + + 1 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + 控制 + + + 2 + + + + QWidget #controlContents +{ + background-color: #0E1C4C; + + border-top: 1px solid #2c586b; + border-left: 1px solid #2c586b; + border-right: 1px solid #2c586b; + border-bottom: 1px solid #2c586b; + + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; +} + + + + + 2 + + + 2 + + + 2 + + + 2 + + + 6 + + + + + QTabBar::tab { + background: #0E1C4C; + color: white; + padding: 6px 12px; + border: none; + border-top: 1px solid #27376C; + height: 41; +} + +QTabBar::tab:selected { + background: #0D1233; + color: white; + border: none; +} + +/*QTabBar::tab:hover { + background: #141A45; +}*/ + +QTabWidget::pane { + border: none; + border-top: 1px solid #27376C; + background: #0D1233; + top: -1px; +} + + + + QTabWidget::South + + + QTabWidget::Rounded + + + 0 + + + Qt::ElideNone + + + + QGroupBox +{ + border: 12px solid transparent; + color: #ACCDFF; +} + +QPushButton +{ + /*width: 172px; + height: 56px;*/ + font: 19pt "新宋体"; + background-color: qlineargradient( + spread:pad, + x1:0.5, y1:0, x2:0.5, y2:1, + stop:0 #283D86, + stop:1 #0F1A40 + ); + color: white; + border: none; + padding: 8px 16px; + border-radius: 4px; +} +QPushButton:hover +{ + background-color: qlineargradient( + spread:pad, + x1:0, y1:0, x2:1, y2:0, + stop:0 #3A4875, + stop:1 #5F6B91 + ); +} +/* 按下时的效果 */ +QPushButton:pressed +{ + background-color: qlineargradient( + spread:pad, + x1:0, y1:0, x2:1, y2:0, + stop:0 #1A254F, + stop:1 #3A466B + ); + /* 可选:添加下压效果 */ + padding-top: 9px; + padding-bottom: 7px; +} + + + rgb相机 + + + + + + Qt::Vertical + + + + 20 + 174 + + + + + + + + Qt::Horizontal + + + + 115 + 20 + + + + + + + + 20 + + + + + + 0 + 0 + + + + 录制视频 + + + + + + + + 0 + 0 + + + + 拍照 + + + + + + + + 0 + 0 + + + + 关闭 + + + + + + + + 0 + 0 + + + + 打开 + + + + + + + + + Qt::Horizontal + + + + 115 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 173 + + + + + + + + + + + + + + + 20 + 0 + + + + toolBar + + + QToolBar { + background: #040125;/*transparent*/ + border: 1px solid #040125; +} + + + false + + + LeftToolBarArea + + + false + + + + + + 20 + 0 + + + + toolBar_2 + + + QToolBar { + background: #040125;/*transparent*/ + border: 1px solid #040125; +} + + + false + + + RightToolBarArea + + + false + + + + + + 0 + 20 + + + + toolBar_3 + + + QToolBar { + background: #040125;/*transparent*/ + border: 1px solid #040125; +} + + + false + + + BottomToolBarArea + + + false + + + + + 退出 + + + + Adobe Devanagari + + + + + + open + + + open + + + + + preference... + + + + + 采集 + + + + + 调焦 + + + + + 曝光 + + + + + 暗电流 + + + + + 白板 + + + + + 连接相机 + + + + 宋体 + + + + + + 打开文件夹 + + + + + true + + + Pika L + + + + 宋体 + + + + + + true + + + Corning 410 + + + + + true + + + Pika XC2 + + + + 宋体 + + + + + + 关于 + + + + + true + + + Pika NIR + + + + 宋体 + + + + + + 面板 + + + + + 工具栏 + + + + + true + + + 马达 + + + + + true + + + false + + + true + + + + + + + + true + + + 2 轴线性马达 + + + + + true + + + false + + + 机械臂 + + + + + true + + + 1 轴线性马达 + + + + + true + + + 室内1轴线性平台 + + + + + 辐亮度 + + + + + 反射率 + + + + + 机械臂 + + + + + 显微镜 + + + + + 三脚架(旋转平台) + + + + + 打开影像 + + + + + 关闭影像 + + + + + 设置 + + + + + 拼接 + + + + + true + + + 植物表型 + + + + + 2轴旋转平台 + + + + + true + + + 2 轴线性马达 + + + + + 漫游 + + + + + 光谱 + + + + + + + CustomDockWidgetBase + QDockWidget +
customdockwidgetbase.h
+ 1 +
+ + CustomDockWidgetHideAbove + QDockWidget +
CustomDockWidgetBase.h
+ 1 +
+
+ + + + +
diff --git a/HPPA/HPPA.cpp b/HPPA/HPPA.cpp index d6a7925..75c641d 100644 --- a/HPPA/HPPA.cpp +++ b/HPPA/HPPA.cpp @@ -417,7 +417,7 @@ HPPA::HPPA(QWidget* parent) //ui.mDockWidgetSpectrometer->show(); initControlTabwidget(); m_tabManager = new TabManager(ui.controlTabWidget, this); - + ui.mDockWidgetSpectrometer->setWidget(tmp(ui.controlContents)); //3D模型看板 @@ -739,43 +739,36 @@ QWidget* HPPA::tmp(QWidget* a) void HPPA::initControlTabwidget() { + ui.controlTabWidget->removeTab(0);//首先删除默认的tab + m_hic = new HyperImagerControl(); - //ui.controlTabWidget->addTab(m_hic, QString::fromLocal8Bit("光谱仪")); - ui.controlTabWidget->insertTab(0, m_hic, QString::fromLocal8Bit("光谱仪")); m_hic->setDisabled(true); + ui.controlTabWidget->addTab(m_hic, QString::fromLocal8Bit("光谱仪")); ui.controlTabWidget->setCurrentIndex(0); - //rgb相机 - m_RgbCameraThread = new QThread(); - m_RgbCamera = new RgbCameraOperation(); - m_RgbCamera->moveToThread(m_RgbCameraThread); - m_RgbCameraThread->start(); - connect(ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera()));//使用信号通知主线程(ui线程)刷新视频 → 成功,但是界面卡顿 - connect(m_RgbCamera, SIGNAL(PlotSignal()), this, SLOT(onPlotRgbImage())); - - //m_RgbCamera->setCallback(onPlotRgbImage); - //connect(this->ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera_callback()));//使用回调函数来刷新主线程(ui线程)上的视频 → 失败 - - connect(ui.close_rgb_camera_btn, SIGNAL(clicked()), this, SLOT(onCloseRgbCamera()));//关闭相机 - connect(m_RgbCamera, SIGNAL(CamClosed()), this, SLOT(onClearLabel())); - //图像控制 m_ic = new ImageControl(); m_ic->setWindowFlags(Qt::Widget); connect(m_ic, SIGNAL(bandSelectionChanged(double, double, double)), this, SLOT(onBandSelectionChanged(double, double, double))); - ui.controlTabWidget->addTab(m_ic, QString::fromLocal8Bit("图像控制")); + ui.controlTabWidget->addTab(m_ic, QString::fromLocal8Bit("图像控制"));//????????????????????????????????????????????????????????????????????????????????????????????????? + + //rgb相机 + m_rgbCameraControlWindow = new rgbCameraWindow(); + connect(m_rgbCameraControlWindow, &rgbCameraWindow::PlotRgbImageSignal, this, &HPPA::onPlotRgbImage); + connect(m_rgbCameraControlWindow, &rgbCameraWindow::CamClosedSignal, this, &HPPA::onClearLabel); + + ui.controlTabWidget->addTab(m_rgbCameraControlWindow, QString::fromLocal8Bit("rgb相机")); //升降桌dock m_adt = new adjustTable(); m_adt->setWindowFlags(Qt::Widget); ui.controlTabWidget->addTab(m_adt, QString::fromLocal8Bit("升降桌")); - //电源控制 m_pc = new PowerControl(); m_pc->setWindowFlags(Qt::Widget); - ui.controlTabWidget->addTab(m_pc, QString::fromLocal8Bit("电源控制")); + ui.controlTabWidget->addTab(m_pc, QString::fromLocal8Bit("电源控制")); //机械臂控制 m_rac = new RobotArmControl(); @@ -795,7 +788,6 @@ void HPPA::initControlTabwidget() m_tmc->setWindowFlags(Qt::Widget); ui.controlTabWidget->addTab(m_tmc, QString::fromLocal8Bit("2轴控制")); - // Connect ImageControl band change to re-render (m_ic created in initControlTabwidget) connect(m_ic, SIGNAL(bandSelectionChanged(double,double,double)), this, SLOT(onBandSelectionChanged(double,double,double))); @@ -1218,7 +1210,7 @@ void HPPA::createOneMotorScenario() ui.mAction_1AxisMotor->setChecked(true); //右下角控制tab - m_tabManager->hideTab(ui.rgbCameraWidget); + m_tabManager->hideTab(m_rgbCameraControlWindow); m_tabManager->hideTab(m_adt); m_tabManager->hideTab(m_pc); m_tabManager->hideTab(m_rac); @@ -1243,13 +1235,13 @@ void HPPA::createPlantPhenotypeScenario() // return; //在菜单中选择移动平台 - ui.mAction_2AxisMotor_new->setChecked(true); + ui.mAction_2AxisMotor_new->setChecked(true); //右下角控制tab m_tabManager->hideTab(m_rac); m_tabManager->hideTab(m_omc); - m_tabManager->showTab(ui.rgbCameraWidget); + m_tabManager->showTab(m_rgbCameraControlWindow); m_tabManager->showTab(m_adt); m_tabManager->showTab(m_pc); m_tabManager->showTab(m_tmc); @@ -1753,7 +1745,7 @@ void HPPA::OnSendLogToCallClass(QString str) void HPPA::onPlotRgbImage() { //std::cout << "显示视频+++++++++++++++++++++++++++++++++++++++++++" << std::endl; - QPixmap pixmap = QPixmap::fromImage(m_RgbCamera->m_qImage); + QPixmap pixmap = QPixmap::fromImage(m_rgbCameraControlWindow->m_RgbCamera->m_qImage); int width = m_cam_label->width(); int height = m_cam_label->height(); @@ -1762,12 +1754,6 @@ void HPPA::onPlotRgbImage() m_cam_label->setPixmap(fitpixmap); } -void HPPA::onCloseRgbCamera() -{ - //std::cout << "关闭视频+++++++++++++++++++++++++++++++++++++++++++" << std::endl; - m_RgbCamera->CloseCamera(); -} - void HPPA::onClearLabel() { m_cam_label->clear(); diff --git a/HPPA/HPPA.h b/HPPA/HPPA.h index 0ec6b92..eb65c0d 100644 --- a/HPPA/HPPA.h +++ b/HPPA/HPPA.h @@ -77,6 +77,8 @@ #include "AppSettings.h" #include "FileNameLineEdit.h" +#include "rgbCameraWindow.h" + #define PI 3.1415926 QT_CHARTS_USE_NAMESPACE//QChartView 使用 需要加宏, 否则无法使用 @@ -221,7 +223,7 @@ private: int m_RecordState;//用来控制相机采集流程,取2的余数,1 → 正在采集,0 → 停止采集 QThread * m_RecordThread;//影像采集线程 - QThread * m_RgbCameraThread;//rgb相机获取图像线程 + QThread * m_CopyFileThread;//影像文件复制线程 FileOperation * m_FileOperation; @@ -243,7 +245,7 @@ private: // int m_TabWidgetCurrentIndex;//当手动选择TabWidget的标签时,记录变化后的tab index - RgbCameraOperation *m_RgbCamera; + void getRequest(QString str); @@ -274,6 +276,7 @@ private: TabManager* m_tabManager; HyperImagerControl* m_hic; + rgbCameraWindow* m_rgbCameraControlWindow; ImageControl* m_ic; adjustTable* m_adt; PowerControl* m_pc; @@ -346,7 +349,7 @@ public Q_SLOTS: void OnSendLogToCallClass(QString str); void onPlotRgbImage(); - void onCloseRgbCamera(); + void onClearLabel(); void onCopyFinished(); diff --git a/HPPA/HPPA.ui b/HPPA/HPPA.ui index 094d598..1381f97 100644 --- a/HPPA/HPPA.ui +++ b/HPPA/HPPA.ui @@ -383,119 +383,6 @@ QPushButton:pressed rgb相机 - - - - - Qt::Vertical - - - - 20 - 174 - - - - - - - - Qt::Horizontal - - - - 115 - 20 - - - - - - - - 20 - - - - - - 0 - 0 - - - - 录制视频 - - - - - - - - 0 - 0 - - - - 拍照 - - - - - - - - 0 - 0 - - - - 关闭 - - - - - - - - 0 - 0 - - - - 打开 - - - - - - - - - Qt::Horizontal - - - - 115 - 20 - - - - - - - - Qt::Vertical - - - - 20 - 173 - - - - - diff --git a/HPPA/HPPA.vcxproj b/HPPA/HPPA.vcxproj index ec57941..e25dafa 100644 --- a/HPPA/HPPA.vcxproj +++ b/HPPA/HPPA.vcxproj @@ -147,6 +147,7 @@ + @@ -181,6 +182,7 @@ + @@ -233,6 +235,7 @@ + diff --git a/HPPA/HPPA.vcxproj.filters b/HPPA/HPPA.vcxproj.filters index 06f7cd5..a1b4b45 100644 --- a/HPPA/HPPA.vcxproj.filters +++ b/HPPA/HPPA.vcxproj.filters @@ -211,6 +211,9 @@ Source Files + + Source Files + @@ -342,6 +345,9 @@ Header Files + + Header Files + @@ -430,6 +436,9 @@ Form Files + + Form Files + diff --git a/HPPA/about.ui b/HPPA/about.ui index 36f3e75..e2db911 100644 --- a/HPPA/about.ui +++ b/HPPA/about.ui @@ -288,7 +288,7 @@ QPushButton:pressed } - 版本:3.0.0 + 版本:3.0.1 diff --git a/HPPA/adjustTable.ui b/HPPA/adjustTable.ui index b07a988..c7a7d59 100644 --- a/HPPA/adjustTable.ui +++ b/HPPA/adjustTable.ui @@ -7,7 +7,7 @@ 0 0 501 - 363 + 267 diff --git a/HPPA/imgControl.ui b/HPPA/imgControl.ui index 121abd6..7bf528c 100644 --- a/HPPA/imgControl.ui +++ b/HPPA/imgControl.ui @@ -7,7 +7,7 @@ 0 0 520 - 360 + 229 diff --git a/HPPA/rgbCamera.ui b/HPPA/rgbCamera.ui new file mode 100644 index 0000000..554c98d --- /dev/null +++ b/HPPA/rgbCamera.ui @@ -0,0 +1,186 @@ + + + rgbCameraClass + + + + 0 + 0 + 416 + 219 + + + + + 0 + 0 + + + + rgbCamera + + + QGroupBox +{ + border: 12px solid transparent; + /*border-top: 12px solid transparent; + border-right: 0px solid transparent; + border-bottom: 0px solid transparent; + border-left: 0px solid transparent;*/ + color: #ACCDFF; +} + +QPushButton +{ + /*width: 172px; + height: 56px;*/ + font: 19pt "新宋体"; + background-color: qlineargradient( + spread:pad, + x1:0.5, y1:0, x2:0.5, y2:1, + stop:0 #283D86, + stop:1 #0F1A40 + ); + color: white; + border: none; + padding: 8px 16px; + border-radius: 4px; +} +QPushButton:hover +{ + background-color: qlineargradient( + spread:pad, + x1:0, y1:0, x2:1, y2:0, + stop:0 #3A4875, + stop:1 #5F6B91 + ); +} +/* 按下时的效果 */ +QPushButton:pressed +{ + background-color: qlineargradient( + spread:pad, + x1:0, y1:0, x2:1, y2:0, + stop:0 #1A254F, + stop:1 #3A466B + ); + /* 可选:添加下压效果 */ + padding-top: 9px; + padding-bottom: 7px; +} + + + + + + Qt::Vertical + + + + 18 + 100 + + + + + + + + Qt::Horizontal + + + + 135 + 20 + + + + + + + + + + + 0 + 0 + + + + 打 开 + + + + + + + + 0 + 0 + + + + 关 闭 + + + + + + + + 0 + 0 + + + + 录制视频 + + + + + + + + 0 + 0 + + + + 拍 照 + + + + + + + + + Qt::Horizontal + + + + 135 + 20 + + + + + + + + Qt::Vertical + + + + 18 + 100 + + + + + + + + + + diff --git a/HPPA/rgbCameraWindow.cpp b/HPPA/rgbCameraWindow.cpp new file mode 100644 index 0000000..c5f0c22 --- /dev/null +++ b/HPPA/rgbCameraWindow.cpp @@ -0,0 +1,32 @@ +#include "rgbCameraWindow.h" +#include + +rgbCameraWindow::rgbCameraWindow(QWidget* parent) + : QDialog(parent) +{ + ui.setupUi(this); + + m_RgbCameraThread = new QThread(); + m_RgbCamera = new RgbCameraOperation(); + m_RgbCamera->moveToThread(m_RgbCameraThread); + m_RgbCameraThread->start(); + + connect(ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera()));//ʹź֪̣ͨ߳uị߳ˢƵ ɹǽ濨 + connect(m_RgbCamera, SIGNAL(PlotSignal()), this, SIGNAL(PlotRgbImageSignal())); + + //m_RgbCamera->setCallback(onPlotRgbImage); + //connect(this->ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera_callback()));//ʹûصˢ̣߳uị߳ϵƵ ʧ + + connect(ui.close_rgb_camera_btn, SIGNAL(clicked()), this, SLOT(onCloseRgbCamera()));//ر + connect(m_RgbCamera, SIGNAL(CamClosed()), this, SIGNAL(CamClosedSignal())); +} + +rgbCameraWindow::~rgbCameraWindow() +{ +} + +void rgbCameraWindow::onCloseRgbCamera() +{ + //std::cout << "رƵ+++++++++++++++++++++++++++++++++++++++++++" << std::endl; + m_RgbCamera->CloseCamera(); +} diff --git a/HPPA/rgbCameraWindow.h b/HPPA/rgbCameraWindow.h new file mode 100644 index 0000000..9cacd23 --- /dev/null +++ b/HPPA/rgbCameraWindow.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include +#include +#include + +#include "ui_rgbCamera.h" + +#include "RgbCameraOperation.h" + +class rgbCameraWindow : public QDialog +{ + Q_OBJECT + +public: + rgbCameraWindow(QWidget* parent = nullptr); + ~rgbCameraWindow(); + + RgbCameraOperation* m_RgbCamera; + +public Q_SLOTS: + void onCloseRgbCamera(); + +signals: + void PlotRgbImageSignal(); + void CamClosedSignal(); + +private: + Ui::rgbCameraClass ui; + + + QThread* m_RgbCameraThread;//rgbȡͼ߳ +};