消除git中hppa.cpp中文乱码
This commit is contained in:
342
HPPA/HPPA.cpp
342
HPPA/HPPA.cpp
@ -1,4 +1,4 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
//#include <afx.h>
|
//#include <afx.h>
|
||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
@ -17,7 +17,7 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
QCoreApplication::setOrganizationDomain("iris.com");
|
QCoreApplication::setOrganizationDomain("iris.com");
|
||||||
QCoreApplication::setApplicationName("HPPA");
|
QCoreApplication::setApplicationName("HPPA");
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
//配置文件:如果没有,就创建配置文件
|
||||||
string HPPACfgFile = getPathofEXE() + "\\HPPA.cfg";
|
string HPPACfgFile = getPathofEXE() + "\\HPPA.cfg";
|
||||||
mConfigfile.setConfigfilePath(HPPACfgFile);
|
mConfigfile.setConfigfilePath(HPPACfgFile);
|
||||||
if (!mConfigfile.isConfigfileExist())
|
if (!mConfigfile.isConfigfileExist())
|
||||||
@ -48,7 +48,7 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
int SubdivisionMultiples_y;
|
int SubdivisionMultiples_y;
|
||||||
mConfigfile.getYMotorParm(StepAnglemar_y, Lead_y, SubdivisionMultiples_y, ScaleFactor_y);*/
|
mConfigfile.getYMotorParm(StepAnglemar_y, Lead_y, SubdivisionMultiples_y, ScaleFactor_y);*/
|
||||||
|
|
||||||
//״̬<EFBFBD><EFBFBD>
|
//状态栏
|
||||||
//xmotor_state_label1 = new QLabel();
|
//xmotor_state_label1 = new QLabel();
|
||||||
//ymotor_state_label1 = new QLabel();
|
//ymotor_state_label1 = new QLabel();
|
||||||
//xmotor_state_label1->setText("xMotor");
|
//xmotor_state_label1->setText("xMotor");
|
||||||
@ -72,17 +72,17 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><EFBFBD><EFBFBD>
|
//光谱仪操作
|
||||||
m_Imager = nullptr;
|
m_Imager = nullptr;
|
||||||
m_RecordState = 0;
|
m_RecordState = 0;
|
||||||
connect(this->ui.action_connect_imager, SIGNAL(triggered()), this, SLOT(onconnect()));//<EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۰<EFBFBD><EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD>onconnect<EFBFBD><EFBFBD>
|
connect(this->ui.action_connect_imager, SIGNAL(triggered()), this, SLOT(onconnect()));//信号与槽:连接相机,相机操作相关信号与槽绑定放在函数onconnect中
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ʷ<EFBFBD>Χ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>slider<EFBFBD><EFBFBD><EFBFBD>źźͲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>connectǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>setMinimum<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>slider<EFBFBD><EFBFBD>ֵ
|
//设置相机可用帧率范围:这些设置必须在slider的信号和槽连接connect前,否则setMinimum会改变slider的值
|
||||||
ui.FramerateSlider->setMinimum(1);
|
ui.FramerateSlider->setMinimum(1);
|
||||||
ui.FramerateSlider->setMaximum(250);
|
ui.FramerateSlider->setMaximum(250);
|
||||||
ui.GainSlider->setMinimum(0);
|
ui.GainSlider->setMinimum(0);
|
||||||
ui.GainSlider->setMaximum(24);
|
ui.GainSlider->setMaximum(24);
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//相机参数控件设置为不可用
|
||||||
frame_number->setEnabled(false);
|
frame_number->setEnabled(false);
|
||||||
|
|
||||||
ui.framerate_lineEdit->setEnabled(false);
|
ui.framerate_lineEdit->setEnabled(false);
|
||||||
@ -98,7 +98,7 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
widthScale = 1;
|
widthScale = 1;
|
||||||
heightScale = 1;
|
heightScale = 1;
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>
|
//马达位置模拟
|
||||||
//connect(ui.graphicsView->imager, SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onimagerSimulatorMove(int, int)));
|
//connect(ui.graphicsView->imager, SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onimagerSimulatorMove(int, int)));
|
||||||
|
|
||||||
initPanelToolbar();
|
initPanelToolbar();
|
||||||
@ -160,7 +160,7 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
//dock_layers->setMaximumHeight(498);
|
//dock_layers->setMaximumHeight(498);
|
||||||
|
|
||||||
|
|
||||||
//<EFBFBD>߹<EFBFBD><EFBFBD>ײ鿴
|
//高光谱查看
|
||||||
QDockWidget* dock_hyperimgViewer = new CustomDockWidgetBase(QString::fromLocal8Bit("hyimgViewer"), this);
|
QDockWidget* dock_hyperimgViewer = new CustomDockWidgetBase(QString::fromLocal8Bit("hyimgViewer"), this);
|
||||||
dock_hyperimgViewer->setObjectName("hyimgViewer");
|
dock_hyperimgViewer->setObjectName("hyimgViewer");
|
||||||
|
|
||||||
@ -173,14 +173,14 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
gridLayout_hyperimgViewer->setContentsMargins(1, 2, 1, 2);
|
gridLayout_hyperimgViewer->setContentsMargins(1, 2, 1, 2);
|
||||||
|
|
||||||
m_imageViewerTabWidget = new QTabWidget();
|
m_imageViewerTabWidget = new QTabWidget();
|
||||||
//m_imageViewerTabWidget->tabBar()->setFixedHeight(40);//û<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>qss<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø߶Ȳ<EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊɶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//m_imageViewerTabWidget->tabBar()->setFixedHeight(40);//没有效果,在qss中设置高度才有效果,为啥????
|
||||||
m_imageViewerTabWidget->clear();//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>棬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>tab
|
m_imageViewerTabWidget->clear();//必须放在最前面,首先删除所有的tab
|
||||||
QToolButton* maxButton = new QToolButton();
|
QToolButton* maxButton = new QToolButton();
|
||||||
maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton));
|
maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton));
|
||||||
connect(maxButton, SIGNAL(clicked()), dock_hyperimgViewer, SLOT(toggleMaximize()));
|
connect(maxButton, SIGNAL(clicked()), dock_hyperimgViewer, SLOT(toggleMaximize()));
|
||||||
m_imageViewerTabWidget->setCornerWidget(maxButton, Qt::TopRightCorner);
|
m_imageViewerTabWidget->setCornerWidget(maxButton, Qt::TopRightCorner);
|
||||||
//onCreateTab(0);
|
//onCreateTab(0);
|
||||||
//m_imageViewerTabWidget->setTabsClosable(true);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>йرհ<EFBFBD>ť
|
//m_imageViewerTabWidget->setTabsClosable(true);//这样每页都会有关闭按钮
|
||||||
connect(m_imageViewerTabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabWidgetCurrentChanged(int)));
|
connect(m_imageViewerTabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabWidgetCurrentChanged(int)));
|
||||||
m_imageViewerTabWidget->setStyleSheet(R"(
|
m_imageViewerTabWidget->setStyleSheet(R"(
|
||||||
QTabBar::tab {
|
QTabBar::tab {
|
||||||
@ -283,8 +283,8 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
QWidget* tmp6 = new QWidget();
|
QWidget* tmp6 = new QWidget();
|
||||||
dock_hyperimgViewer->setTitleBarWidget(tmp6);
|
dock_hyperimgViewer->setTitleBarWidget(tmp6);
|
||||||
|
|
||||||
//<EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//轮播看板
|
||||||
m_dock_carousel = new CustomDockWidgetBase(QString::fromLocal8Bit("<EFBFBD>ֲ<EFBFBD>"), this);
|
m_dock_carousel = new CustomDockWidgetBase(QString::fromLocal8Bit("轮播"), this);
|
||||||
m_dock_carousel->setObjectName("mDockCarousel");
|
m_dock_carousel->setObjectName("mDockCarousel");
|
||||||
m_dock_carousel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
m_dock_carousel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
||||||
mPanelMenu->addAction(m_dock_carousel->toggleViewAction());
|
mPanelMenu->addAction(m_dock_carousel->toggleViewAction());
|
||||||
@ -353,14 +353,14 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
|
|
||||||
m_dock_carousel->setWidget(carouselContainer);
|
m_dock_carousel->setWidget(carouselContainer);
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><EFBFBD><EFBFBD>
|
//控制看板
|
||||||
ui.mDockWidgetSpectrometer->setTile(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
ui.mDockWidgetSpectrometer->setTile(QString::fromLocal8Bit("控制"));
|
||||||
//ui.mDockWidgetSpectrometer->show();
|
//ui.mDockWidgetSpectrometer->show();
|
||||||
initControlTabwidget();
|
initControlTabwidget();
|
||||||
m_tabManager = new TabManager(ui.controlTabWidget, this);
|
m_tabManager = new TabManager(ui.controlTabWidget, this);
|
||||||
|
|
||||||
//3Dģ<EFBFBD>Ϳ<EFBFBD><EFBFBD><EFBFBD>
|
//3D模型看板
|
||||||
ui.mDockWidgetSimulator->setTile(QString::fromLocal8Bit("3Dģ<EFBFBD><EFBFBD>"));
|
ui.mDockWidgetSimulator->setTile(QString::fromLocal8Bit("3D模型"));
|
||||||
//ui.mDockWidgetSimulator->show();
|
//ui.mDockWidgetSimulator->show();
|
||||||
|
|
||||||
m_view3DModelManager = new View3DModelManager(this);
|
m_view3DModelManager = new View3DModelManager(this);
|
||||||
@ -396,7 +396,7 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
|
|
||||||
ui.mDockWidgetSimulator->setWidget(modelWidgetContainer);
|
ui.mDockWidgetSimulator->setWidget(modelWidgetContainer);
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű<EFBFBD>
|
//看板排版
|
||||||
splitDockWidget(dock_layers, dock_hyperimgViewer, Qt::Horizontal);
|
splitDockWidget(dock_layers, dock_hyperimgViewer, Qt::Horizontal);
|
||||||
splitDockWidget(dock_hyperimgViewer, m_dock_carousel, Qt::Horizontal);
|
splitDockWidget(dock_hyperimgViewer, m_dock_carousel, Qt::Horizontal);
|
||||||
|
|
||||||
@ -413,26 +413,26 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
QMainWindow::separator{
|
QMainWindow::separator{
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
background: #040125; /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><EFBFBD><EFBFBD>ɫ */
|
background: #040125; /* 可以添加背景色 */
|
||||||
/*border: 1px solid #808080;*/ /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ߿<EFBFBD> */
|
/*border: 1px solid #808080;*/ /* 可以添加边框 */
|
||||||
}
|
}
|
||||||
|
|
||||||
QDockWidget {
|
QDockWidget {
|
||||||
border: 2px solid #2a347a; /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>߿<EFBFBD> */
|
border: 2px solid #2a347a; /* 深蓝色边框 */
|
||||||
background-color: red; /* <EFBFBD><EFBFBD><EFBFBD>屳<EFBFBD><EFBFBD>ɫ */
|
background-color: red; /* 主体背景色 */
|
||||||
color: white; /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ */
|
color: white; /* 标题文字颜色 */
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* 标题栏 */
|
||||||
QDockWidget::title {
|
QDockWidget::title {
|
||||||
background-color: #0E1C4C; /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ */
|
background-color: #0E1C4C; /* 标题栏背景色 */
|
||||||
text-align: left; /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD> */
|
text-align: left; /* 标题文字居中 */
|
||||||
|
|
||||||
/*padding: 4px;*/
|
/*padding: 4px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DockWidget <EFBFBD>Ĺرհ<EFBFBD>ť<EFBFBD><EFBFBD>ʽ */
|
/* 可选:控制 DockWidget 的关闭按钮样式 */
|
||||||
QDockWidget::close-button, QDockWidget::float-button {
|
QDockWidget::close-button, QDockWidget::float-button {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: none;
|
border: none;
|
||||||
@ -471,7 +471,7 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
|
|
||||||
void HPPA::initMenubarToolbar()
|
void HPPA::initMenubarToolbar()
|
||||||
{
|
{
|
||||||
//<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//自定义菜单栏和工具栏
|
||||||
QWidget* menuWidget = new WidgetWithBackgroundPicture();
|
QWidget* menuWidget = new WidgetWithBackgroundPicture();
|
||||||
//menuWidget->setFixedWidth(200);
|
//menuWidget->setFixedWidth(200);
|
||||||
menuWidget->setFixedHeight(66);
|
menuWidget->setFixedHeight(66);
|
||||||
@ -488,28 +488,28 @@ void HPPA::initMenubarToolbar()
|
|||||||
}
|
}
|
||||||
QMenuBar::item {
|
QMenuBar::item {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: white; /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ */
|
color: white; /* 根据你的背景调整文字颜色 */
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
padding-top: 8px;
|
padding-top: 8px;
|
||||||
padding-bottom: 8px;
|
padding-bottom: 8px;
|
||||||
}
|
}
|
||||||
QMenuBar::item:selected {
|
QMenuBar::item:selected {
|
||||||
background: rgba(255, 255, 255, 50); /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
background: rgba(255, 255, 255, 50); /* 轻微高亮 */
|
||||||
}
|
}
|
||||||
|
|
||||||
QMenu {
|
QMenu {
|
||||||
background-color: #0A1245; /* <EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ */
|
background-color: #0A1245; /* 菜单背景色 */
|
||||||
border: 1px solid gray; /* <EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><EFBFBD><EFBFBD>ʽ */
|
border: 1px solid gray; /* 可选,边框样式 */
|
||||||
color: white; /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ */
|
color: white; /* 根据你的背景调整文字颜色 */
|
||||||
}
|
}
|
||||||
QMenu::item:selected {
|
QMenu::item:selected {
|
||||||
background-color: rgba(255, 255, 255, 50); /* ѡ<EFBFBD><EFBFBD>ʱ<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>ɫ */
|
background-color: rgba(255, 255, 255, 50); /* 选中时的背景色 */
|
||||||
color: white; /* ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ */
|
color: white; /* 选中项字体颜色,可选 */
|
||||||
}
|
}
|
||||||
)");
|
)");
|
||||||
|
|
||||||
hLayout_menuWidget->addStretch();
|
hLayout_menuWidget->addStretch();
|
||||||
QPushButton* closeBtn = new QPushButton(QString::fromLocal8Bit("<EFBFBD>˳<EFBFBD>ƽ̨"));
|
QPushButton* closeBtn = new QPushButton(QString::fromLocal8Bit("退出平台"));
|
||||||
closeBtn->setStyleSheet(R"(
|
closeBtn->setStyleSheet(R"(
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background: #002CE0;
|
background: #002CE0;
|
||||||
@ -535,7 +535,7 @@ void HPPA::initMenubarToolbar()
|
|||||||
toolBar->setAutoFillBackground(false);
|
toolBar->setAutoFillBackground(false);
|
||||||
toolBar->setIconSize(QSize(56, 56));
|
toolBar->setIconSize(QSize(56, 56));
|
||||||
toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
||||||
//<EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QLineEdit
|
//在工具栏上添加输入框QLineEdit
|
||||||
frame_number = new QLineEdit(ui.mainToolBar);
|
frame_number = new QLineEdit(ui.mainToolBar);
|
||||||
frame_number->setStyleSheet("QLineEdit{background-color:rgb(255,255,255);}");
|
frame_number->setStyleSheet("QLineEdit{background-color:rgb(255,255,255);}");
|
||||||
frame_number->setMaximumWidth(100);
|
frame_number->setMaximumWidth(100);
|
||||||
@ -553,7 +553,7 @@ void HPPA::initMenubarToolbar()
|
|||||||
ui.action_focus->setIcon(QIcon(".//icon//all//focus.png"));
|
ui.action_focus->setIcon(QIcon(".//icon//all//focus.png"));
|
||||||
ui.action_dark->setIcon(QIcon(".//icon//all//dark.png"));
|
ui.action_dark->setIcon(QIcon(".//icon//all//dark.png"));
|
||||||
ui.action_reference->setIcon(QIcon(".//icon//all//reference.png"));
|
ui.action_reference->setIcon(QIcon(".//icon//all//reference.png"));
|
||||||
// ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// 使用样式表设置透明背景
|
||||||
toolBar->setStyleSheet(R"(
|
toolBar->setStyleSheet(R"(
|
||||||
QToolBar {
|
QToolBar {
|
||||||
background: #0D1233;/*transparent*/
|
background: #0D1233;/*transparent*/
|
||||||
@ -562,12 +562,12 @@ void HPPA::initMenubarToolbar()
|
|||||||
}
|
}
|
||||||
QToolButton {
|
QToolButton {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: white; /* <EFBFBD>ɸ<EFBFBD><EFBFBD>ݱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ */
|
color: white; /* 可根据背景调整文字颜色 */
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
margin: 0 0 0 6px;
|
margin: 0 0 0 6px;
|
||||||
}
|
}
|
||||||
QToolButton:hover {
|
QToolButton:hover {
|
||||||
background: rgba(255,255,255,50); /* <EFBFBD><EFBFBD>ͣʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
background: rgba(255,255,255,50); /* 悬停时轻微高亮 */
|
||||||
}
|
}
|
||||||
)");
|
)");
|
||||||
|
|
||||||
@ -582,48 +582,48 @@ void HPPA::initMenubarToolbar()
|
|||||||
|
|
||||||
void HPPA::initControlTabwidget()
|
void HPPA::initControlTabwidget()
|
||||||
{
|
{
|
||||||
//rgb<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//rgb相机
|
||||||
m_RgbCameraThread = new QThread();
|
m_RgbCameraThread = new QThread();
|
||||||
m_RgbCamera = new RgbCameraOperation();
|
m_RgbCamera = new RgbCameraOperation();
|
||||||
m_RgbCamera->moveToThread(m_RgbCameraThread);
|
m_RgbCamera->moveToThread(m_RgbCameraThread);
|
||||||
m_RgbCameraThread->start();
|
m_RgbCameraThread->start();
|
||||||
connect(ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera()));//ʹ<EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>֪ͨ<EFBFBD><EFBFBD><EFBFBD>̣߳<EFBFBD>ui<EFBFBD>̣߳<EFBFBD>ˢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ <20><> <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD>濨<EFBFBD><E6BFA8>
|
connect(ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera()));//使用信号通知主线程(ui线程)刷新视频 → 成功,但是界面卡顿
|
||||||
connect(m_RgbCamera, SIGNAL(PlotSignal()), this, SLOT(onPlotRgbImage()));
|
connect(m_RgbCamera, SIGNAL(PlotSignal()), this, SLOT(onPlotRgbImage()));
|
||||||
|
|
||||||
//m_RgbCamera->setCallback(onPlotRgbImage);
|
//m_RgbCamera->setCallback(onPlotRgbImage);
|
||||||
//connect(this->ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera_callback()));//ʹ<EFBFBD>ûص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣߳<EFBFBD>ui<EFBFBD>̣߳<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>Ƶ <20><> ʧ<><CAA7>
|
//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()));//<EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
connect(ui.close_rgb_camera_btn, SIGNAL(clicked()), this, SLOT(onCloseRgbCamera()));//关闭相机
|
||||||
connect(m_RgbCamera, SIGNAL(CamClosed()), this, SLOT(onClearLabel()));
|
connect(m_RgbCamera, SIGNAL(CamClosed()), this, SLOT(onClearLabel()));
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dock
|
//升降桌dock
|
||||||
m_adt = new adjustTable();
|
m_adt = new adjustTable();
|
||||||
m_adt->setWindowFlags(Qt::Widget);
|
m_adt->setWindowFlags(Qt::Widget);
|
||||||
ui.controlTabWidget->addTab(m_adt, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
ui.controlTabWidget->addTab(m_adt, QString::fromLocal8Bit("升降桌"));
|
||||||
|
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//电源控制
|
||||||
m_pc = new PowerControl();
|
m_pc = new PowerControl();
|
||||||
m_pc->setWindowFlags(Qt::Widget);
|
m_pc->setWindowFlags(Qt::Widget);
|
||||||
ui.controlTabWidget->addTab(m_pc, QString::fromLocal8Bit("<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
ui.controlTabWidget->addTab(m_pc, QString::fromLocal8Bit("电源控制"));
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD>е<EFBFBD>ۿ<EFBFBD><EFBFBD><EFBFBD>
|
//机械臂控制
|
||||||
m_rac = new RobotArmControl();
|
m_rac = new RobotArmControl();
|
||||||
connect(m_rac->robotController, SIGNAL(hsiRecordSignal(int)), this, SLOT(recordFromRobotArm(int)));
|
connect(m_rac->robotController, SIGNAL(hsiRecordSignal(int)), this, SLOT(recordFromRobotArm(int)));
|
||||||
m_rac->setWindowFlags(Qt::Widget);
|
m_rac->setWindowFlags(Qt::Widget);
|
||||||
ui.controlTabWidget->addTab(m_rac, QString::fromLocal8Bit("<EFBFBD><EFBFBD>е<EFBFBD>ۿ<EFBFBD><EFBFBD><EFBFBD>"));
|
ui.controlTabWidget->addTab(m_rac, QString::fromLocal8Bit("机械臂控制"));
|
||||||
|
|
||||||
//1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//1轴马达控制
|
||||||
m_omc = new OneMotorControl();
|
m_omc = new OneMotorControl();
|
||||||
m_omc->setWindowFlags(Qt::Widget);
|
m_omc->setWindowFlags(Qt::Widget);
|
||||||
ui.controlTabWidget->addTab(m_omc, QString::fromLocal8Bit("1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
ui.controlTabWidget->addTab(m_omc, QString::fromLocal8Bit("1轴马达控制"));
|
||||||
|
|
||||||
//2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//2轴马达控制
|
||||||
m_tmc = new TwoMotorControl(this);
|
m_tmc = new TwoMotorControl(this);
|
||||||
connect(m_tmc, SIGNAL(startLineNumSignal(int)), this, SLOT(onCreateTab(int)));
|
connect(m_tmc, SIGNAL(startLineNumSignal(int)), this, SLOT(onCreateTab(int)));
|
||||||
connect(m_tmc, SIGNAL(sequenceComplete()), this, SLOT(onsequenceComplete()));
|
connect(m_tmc, SIGNAL(sequenceComplete()), this, SLOT(onsequenceComplete()));
|
||||||
m_tmc->setWindowFlags(Qt::Widget);
|
m_tmc->setWindowFlags(Qt::Widget);
|
||||||
ui.controlTabWidget->addTab(m_tmc, QString::fromLocal8Bit("2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
ui.controlTabWidget->addTab(m_tmc, QString::fromLocal8Bit("2轴控制"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::recordFromRobotArm(int fileCounter)
|
void HPPA::recordFromRobotArm(int fileCounter)
|
||||||
@ -634,7 +634,7 @@ void HPPA::recordFromRobotArm(int fileCounter)
|
|||||||
{
|
{
|
||||||
m_Imager->setRecordControlState(false);
|
m_Imager->setRecordControlState(false);
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
//qDebug() << "recordFromRobotArm: 1111111111111111111111";
|
//qDebug() << "recordFromRobotArm: 1111111111111111111111";
|
||||||
|
|
||||||
@ -649,7 +649,7 @@ void HPPA::recordFromRobotArm(int fileCounter)
|
|||||||
onCreateTab(fileCounter - 1);
|
onCreateTab(fileCounter - 1);
|
||||||
emit StartRecordSignal();
|
emit StartRecordSignal();
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集中"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
||||||
//qDebug() << "recordFromRobotArm: 2222222222222222222222";
|
//qDebug() << "recordFromRobotArm: 2222222222222222222222";
|
||||||
}
|
}
|
||||||
@ -664,11 +664,11 @@ void HPPA::createActionGroups()
|
|||||||
mImagerGroup->addAction(ui.mActionPica_NIR);
|
mImagerGroup->addAction(ui.mActionPica_NIR);
|
||||||
|
|
||||||
|
|
||||||
// <EFBFBD><EFBFBD>ȡ<EFBFBD>ϴ<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>
|
// 读取上次选择的结果
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
QString lastSelectedAction = settings.value("LastSelectedImagerAction").toString();
|
QString lastSelectedAction = settings.value("LastSelectedImagerAction").toString();
|
||||||
|
|
||||||
// <EFBFBD>ָ<EFBFBD><EFBFBD>ϴ<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>
|
// 恢复上次选择的结果
|
||||||
if (lastSelectedAction == "mActionPica_L")
|
if (lastSelectedAction == "mActionPica_L")
|
||||||
{
|
{
|
||||||
ui.mActionPica_L->setChecked(true);
|
ui.mActionPica_L->setChecked(true);
|
||||||
@ -703,11 +703,11 @@ void HPPA::createMoveplatformActionGroup()
|
|||||||
moveplatformActionGroup->addAction(ui.mAction_1AxisMotor);
|
moveplatformActionGroup->addAction(ui.mAction_1AxisMotor);
|
||||||
moveplatformActionGroup->addAction(ui.mAction_2AxisMotor_new);
|
moveplatformActionGroup->addAction(ui.mAction_2AxisMotor_new);
|
||||||
|
|
||||||
// <EFBFBD><EFBFBD>ȡ<EFBFBD>ϴ<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>
|
// 读取上次选择的结果
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
QString lastSelectedAction = settings.value("LastSelectedMoveplatform").toString();
|
QString lastSelectedAction = settings.value("LastSelectedMoveplatform").toString();
|
||||||
|
|
||||||
// <EFBFBD>ָ<EFBFBD><EFBFBD>ϴ<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>
|
// 恢复上次选择的结果
|
||||||
if (lastSelectedAction == "mAction_is_no_motor")
|
if (lastSelectedAction == "mAction_is_no_motor")
|
||||||
{
|
{
|
||||||
ui.mAction_is_no_motor->setChecked(true);
|
ui.mAction_is_no_motor->setChecked(true);
|
||||||
@ -746,16 +746,16 @@ HPPA::~HPPA()
|
|||||||
|
|
||||||
if (m_Imager != nullptr)
|
if (m_Imager != nullptr)
|
||||||
{
|
{
|
||||||
//m_Imager->~ResononNirImager();//<EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>Դ
|
//m_Imager->~ResononNirImager();//释放资源
|
||||||
delete m_Imager;
|
delete m_Imager;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::initPanelToolbar()
|
void HPPA::initPanelToolbar()
|
||||||
{
|
{
|
||||||
mPanelMenu = new QMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);//create panel menu
|
mPanelMenu = new QMenu(QString::fromLocal8Bit("面板"), this);//create panel menu
|
||||||
mPanelMenu->setObjectName(QStringLiteral("mPanelMenu"));
|
mPanelMenu->setObjectName(QStringLiteral("mPanelMenu"));
|
||||||
mToolbarMenu = new QMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);//create toolbar menu
|
mToolbarMenu = new QMenu(QString::fromLocal8Bit("工具栏"), this);//create toolbar menu
|
||||||
mToolbarMenu->setObjectName(QStringLiteral("mToolbarMenu"));
|
mToolbarMenu->setObjectName(QStringLiteral("mToolbarMenu"));
|
||||||
|
|
||||||
ui.mWindowsMenu->addSeparator();
|
ui.mWindowsMenu->addSeparator();
|
||||||
@ -775,11 +775,11 @@ void HPPA::createScenarioActionGroup()
|
|||||||
m_ScenarioActionGroup->addAction(ui.mActionOneMotorScenario);
|
m_ScenarioActionGroup->addAction(ui.mActionOneMotorScenario);
|
||||||
m_ScenarioActionGroup->addAction(ui.mActionPlantPhenotypeScenario);
|
m_ScenarioActionGroup->addAction(ui.mActionPlantPhenotypeScenario);
|
||||||
|
|
||||||
// <EFBFBD><EFBFBD>ȡ<EFBFBD>ϴ<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>
|
// 读取上次选择的结果
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
QString lastSelectedAction = settings.value("LastSelectedScenario").toString();
|
QString lastSelectedAction = settings.value("LastSelectedScenario").toString();
|
||||||
|
|
||||||
// <EFBFBD>ָ<EFBFBD><EFBFBD>ϴ<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>
|
// 恢复上次选择的结果
|
||||||
if (lastSelectedAction == "mActionOneMotorScenario")
|
if (lastSelectedAction == "mActionOneMotorScenario")
|
||||||
{
|
{
|
||||||
ui.mActionOneMotorScenario->setChecked(true);
|
ui.mActionOneMotorScenario->setChecked(true);
|
||||||
@ -809,17 +809,17 @@ void HPPA::createOneMotorScenario()
|
|||||||
//if (ui.mActionOneMotorScenario->isChecked())
|
//if (ui.mActionOneMotorScenario->isChecked())
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DockWidget
|
//清除所有DockWidget
|
||||||
//QList<QDockWidget*> dockWidgets = this->findChildren<QDockWidget*>();
|
//QList<QDockWidget*> dockWidgets = this->findChildren<QDockWidget*>();
|
||||||
//for (QDockWidget* dock : dockWidgets)
|
//for (QDockWidget* dock : dockWidgets)
|
||||||
//{
|
//{
|
||||||
// dock->hide();
|
// dock->hide();
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//<EFBFBD>ڲ˵<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>ƽ̨
|
//在菜单中选择移动平台
|
||||||
ui.mAction_1AxisMotor->setChecked(true);
|
ui.mAction_1AxisMotor->setChecked(true);
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>½ǿ<EFBFBD><EFBFBD><EFBFBD>tab
|
//右下角控制tab
|
||||||
m_tabManager->hideTab(ui.rgbCameraWidget);
|
m_tabManager->hideTab(ui.rgbCameraWidget);
|
||||||
m_tabManager->hideTab(m_adt);
|
m_tabManager->hideTab(m_adt);
|
||||||
m_tabManager->hideTab(m_pc);
|
m_tabManager->hideTab(m_pc);
|
||||||
@ -832,7 +832,7 @@ void HPPA::createOneMotorScenario()
|
|||||||
|
|
||||||
m_view3DModelManager->switchScenario(View3DModelManager::ScenarioType::OneMotor);
|
m_view3DModelManager->switchScenario(View3DModelManager::ScenarioType::OneMotor);
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><EFBFBD>ֲ<EFBFBD>
|
//右上角轮播
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -846,10 +846,10 @@ void HPPA::createPlantPhenotypeScenario()
|
|||||||
//if (ui.mActionPlantPhenotypeScenario->isChecked())
|
//if (ui.mActionPlantPhenotypeScenario->isChecked())
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
//<EFBFBD>ڲ˵<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>ƽ̨
|
//在菜单中选择移动平台
|
||||||
ui.mAction_2AxisMotor_new->setChecked(true);
|
ui.mAction_2AxisMotor_new->setChecked(true);
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>½ǿ<EFBFBD><EFBFBD><EFBFBD>tab
|
//右下角控制tab
|
||||||
m_tabManager->hideTab(m_rac);
|
m_tabManager->hideTab(m_rac);
|
||||||
m_tabManager->hideTab(m_omc);
|
m_tabManager->hideTab(m_omc);
|
||||||
|
|
||||||
@ -862,15 +862,15 @@ void HPPA::createPlantPhenotypeScenario()
|
|||||||
|
|
||||||
m_view3DModelManager->switchScenario(View3DModelManager::ScenarioType::PlantPhenotype);
|
m_view3DModelManager->switchScenario(View3DModelManager::ScenarioType::PlantPhenotype);
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><EFBFBD>ֲ<EFBFBD>
|
//右上角轮播
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::CalculateIntegratioinTimeRange()
|
void HPPA::CalculateIntegratioinTimeRange()
|
||||||
{
|
{
|
||||||
double range = 1 / m_Imager->getFramerate() * 1000;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
double range = 1 / m_Imager->getFramerate() * 1000;//毫秒
|
||||||
|
|
||||||
ui.IntegratioinTimeSlider->blockSignals(true);//<EFBFBD><EFBFBD>ΪsetMaximum<EFBFBD>ᴥ<EFBFBD><EFBFBD>valueChanged<EFBFBD>źţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD>setMaximumǰ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
ui.IntegratioinTimeSlider->blockSignals(true);//因为setMaximum会触发valueChanged信号,所以调用setMaximum前需要阻断信号
|
||||||
ui.IntegratioinTimeSlider->setMaximum(range);
|
ui.IntegratioinTimeSlider->setMaximum(range);
|
||||||
ui.IntegratioinTimeSlider->blockSignals(false);
|
ui.IntegratioinTimeSlider->blockSignals(false);
|
||||||
}
|
}
|
||||||
@ -881,12 +881,12 @@ void HPPA::onStartRecordStep1()
|
|||||||
if (!checked)
|
if (!checked)
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD>"));
|
msgBox.setText(QString::fromLocal8Bit("请选择扫描平台!"));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//<EFBFBD>ж<EFBFBD><EFBFBD>ǷǴ<EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD>ļ<EFBFBD>
|
//判断是否覆盖存在的文件
|
||||||
FileOperation* fileOperation = new FileOperation();
|
FileOperation* fileOperation = new FileOperation();
|
||||||
string directory = fileOperation->getDirectoryFromString();
|
string directory = fileOperation->getDirectoryFromString();
|
||||||
//string imgPath = directory + "\\tmp_image";
|
//string imgPath = directory + "\\tmp_image";
|
||||||
@ -900,16 +900,16 @@ void HPPA::onStartRecordStep1()
|
|||||||
|
|
||||||
string tmp = imgPath + "_" + std::to_string(0) + ".bil";
|
string tmp = imgPath + "_" + std::to_string(0) + ".bil";
|
||||||
int x = _access(tmp.c_str(), 0);
|
int x = _access(tmp.c_str(), 0);
|
||||||
if (!x)//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD>ִ<EFBFBD>д<EFBFBD>if<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
if (!x)//如果文件存在就执行此if的代码
|
||||||
{
|
{
|
||||||
enum QMessageBox::StandardButton response = QMessageBox::question(this, QString::fromLocal8Bit("<EFBFBD><EFBFBD>ʾ"), QString::fromLocal8Bit("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD>Ƿǣ<EFBFBD>"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);;
|
enum QMessageBox::StandardButton response = QMessageBox::question(this, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("文件存在!是否覆盖?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);;
|
||||||
if (response == QMessageBox::Yes)//
|
if (response == QMessageBox::Yes)//
|
||||||
{
|
{
|
||||||
//std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
//std::cout << "覆盖" << std::endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
//std::cout << "不覆盖" << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -932,17 +932,17 @@ void HPPA::onStartRecordStep1()
|
|||||||
|
|
||||||
m_Imager->setFileName2Save(imgPath);
|
m_Imager->setFileName2Save(imgPath);
|
||||||
m_Imager->setFrameNumber(this->frame_number->text().toInt());
|
m_Imager->setFrameNumber(this->frame_number->text().toInt());
|
||||||
emit StartRecordSignal();//<EFBFBD><EFBFBD><EFBFBD>俪ʼ<EFBFBD>ɼ<EFBFBD><EFBFBD>ź<EFBFBD>
|
emit StartRecordSignal();//发射开始采集信号
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("ֹͣ<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_Imager->setRecordControlState(false);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<EFBFBD>ɼ<EFBFBD>
|
m_Imager->setRecordControlState(false);//光谱仪停止采集
|
||||||
m_RecordState -= 1;
|
m_RecordState -= 1;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -957,10 +957,10 @@ void HPPA::onStartRecordStep1()
|
|||||||
|
|
||||||
onCreateTab(0);
|
onCreateTab(0);
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("ֹͣ<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
||||||
|
|
||||||
//Ӧ<EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dzɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>俪ʼ<EFBFBD>ɼ<EFBFBD><EFBFBD>źţ<EFBFBD>
|
//应该先控制马达运动,当马达运动后,再开始光谱仪采集(发射开始采集信号)
|
||||||
m_Imager->setFileName2Save(imgPath);
|
m_Imager->setFileName2Save(imgPath);
|
||||||
m_Imager->setFrameNumber(this->frame_number->text().toInt());
|
m_Imager->setFrameNumber(this->frame_number->text().toInt());
|
||||||
m_omc->setImager(m_Imager);
|
m_omc->setImager(m_Imager);
|
||||||
@ -971,7 +971,7 @@ void HPPA::onStartRecordStep1()
|
|||||||
m_omc->stop();
|
m_omc->stop();
|
||||||
m_RecordState -= 1;
|
m_RecordState -= 1;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -990,7 +990,7 @@ void HPPA::onStartRecordStep1()
|
|||||||
m_tmc->setPosFileName(QString::fromStdString(x_location));
|
m_tmc->setPosFileName(QString::fromStdString(x_location));
|
||||||
m_tmc->run();
|
m_tmc->run();
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("ֹͣ<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -999,7 +999,7 @@ void HPPA::onStartRecordStep1()
|
|||||||
|
|
||||||
m_RecordState--;
|
m_RecordState--;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1007,7 +1007,7 @@ void HPPA::onStartRecordStep1()
|
|||||||
}
|
}
|
||||||
else if (checkedName == "mAction_RobotArm")
|
else if (checkedName == "mAction_RobotArm")
|
||||||
{
|
{
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><EFBFBD><EFBFBD>RobotArmControl::executeTask<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾbug
|
//先判断是否选择了任务,执行函数RobotArmControl::executeTask,修复界面显示bug
|
||||||
m_Imager->setFileName2Save(imgPath);
|
m_Imager->setFileName2Save(imgPath);
|
||||||
m_Imager->setFrameNumber(this->frame_number->text().toInt());
|
m_Imager->setFrameNumber(this->frame_number->text().toInt());
|
||||||
m_rac->executeTaskWithHyperImager();
|
m_rac->executeTaskWithHyperImager();
|
||||||
@ -1036,22 +1036,22 @@ void HPPA::onCreateTab(int trackNumber)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::onTabWidgetCurrentChanged(int index)//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>һ<EFBFBD><EFBFBD>tab<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>onTabWidgetCurrentChanged<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
void HPPA::onTabWidgetCurrentChanged(int index)//代码新建一个tab,会调用onTabWidgetCurrentChanged函数!
|
||||||
{
|
{
|
||||||
if (index < 0)//<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tabʱ<EFBFBD><EFBFBD>index=-1
|
if (index < 0)//当删除所有tab时,index=-1
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ǰ
|
//记录当前
|
||||||
m_TabWidgetCurrentIndex = index;
|
m_TabWidgetCurrentIndex = index;
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ͼ<EFBFBD>ؼ<EFBFBD>
|
//获取绘图控件
|
||||||
QWidget* currentWidget = m_imageViewerTabWidget->widget(index);
|
QWidget* currentWidget = m_imageViewerTabWidget->widget(index);
|
||||||
QList<ImageViewer*> currentImageViewer = currentWidget->findChildren<ImageViewer*>();
|
QList<ImageViewer*> currentImageViewer = currentWidget->findChildren<ImageViewer*>();
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD>disconnectȻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>connect<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>һ<EFBFBD>ζ<EFBFBD><EFBFBD><EFBFBD>connectһ<EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۻ<EFBFBD>connect<EFBFBD>ܶ<EFBFBD><EFBFBD>Σ<EFBFBD>
|
//先disconnect然后再connect,否则每次切换一次都会connect一次,会累积connect很多次!
|
||||||
disconnect(currentImageViewer[0], SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onLeftMouseButtonPressed(int, int)));
|
disconnect(currentImageViewer[0], SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onLeftMouseButtonPressed(int, int)));
|
||||||
connect(currentImageViewer[0], SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onLeftMouseButtonPressed(int, int)));
|
connect(currentImageViewer[0], SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onLeftMouseButtonPressed(int, int)));
|
||||||
}
|
}
|
||||||
@ -1066,7 +1066,7 @@ void HPPA::onActionOpenDirectory()
|
|||||||
//QDesktopServices::openUrl(QUrl("file:C:\ASD", QUrl::TolerantMode));
|
//QDesktopServices::openUrl(QUrl("file:C:\ASD", QUrl::TolerantMode));
|
||||||
|
|
||||||
|
|
||||||
////std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
////std::cout << "保存影像文件!" << std::endl;
|
||||||
//
|
//
|
||||||
//FileOperation * fileOperation = new FileOperation();
|
//FileOperation * fileOperation = new FileOperation();
|
||||||
//string directory = fileOperation->getDirectoryFromString();
|
//string directory = fileOperation->getDirectoryFromString();
|
||||||
@ -1089,14 +1089,14 @@ void HPPA::onActionOpenDirectory()
|
|||||||
//}
|
//}
|
||||||
//else
|
//else
|
||||||
//{
|
//{
|
||||||
// std::cout << "<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>" << FileName2Save.length() << std::endl;
|
// std::cout << "文件名长度:" << FileName2Save.length() << std::endl;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::OnFramerateLineeditEditingFinished()
|
void HPPA::OnFramerateLineeditEditingFinished()
|
||||||
{
|
{
|
||||||
std::cout << "Lineedit<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>------------------------------------------" << std::endl;
|
std::cout << "Lineedit设置帧率------------------------------------------" << std::endl;
|
||||||
m_Imager->setFramerate(this->ui.framerate_lineEdit->text().toDouble());
|
m_Imager->setFramerate(this->ui.framerate_lineEdit->text().toDouble());
|
||||||
ui.FramerateSlider->setValue(ui.framerate_lineEdit->text().toDouble());
|
ui.FramerateSlider->setValue(ui.framerate_lineEdit->text().toDouble());
|
||||||
|
|
||||||
@ -1105,7 +1105,7 @@ void HPPA::OnFramerateLineeditEditingFinished()
|
|||||||
|
|
||||||
void HPPA::OnFramerateSliderChanged(double framerate)
|
void HPPA::OnFramerateSliderChanged(double framerate)
|
||||||
{
|
{
|
||||||
std::cout << "Slider<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>------------------------------------------" << std::endl;
|
std::cout << "Slider设置帧率------------------------------------------" << std::endl;
|
||||||
m_Imager->setFramerate(this->ui.framerate_lineEdit->text().toDouble());
|
m_Imager->setFramerate(this->ui.framerate_lineEdit->text().toDouble());
|
||||||
ui.framerate_lineEdit->setText(QString::number(framerate));
|
ui.framerate_lineEdit->setText(QString::number(framerate));
|
||||||
|
|
||||||
@ -1114,14 +1114,14 @@ void HPPA::OnFramerateSliderChanged(double framerate)
|
|||||||
|
|
||||||
void HPPA::OnIntegratioinTimeEditingFinished()
|
void HPPA::OnIntegratioinTimeEditingFinished()
|
||||||
{
|
{
|
||||||
std::cout << "Lineedit<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>------------------------------------------" << std::endl;
|
std::cout << "Lineedit设置积分时间------------------------------------------" << std::endl;
|
||||||
m_Imager->setIntegrationTime(this->ui.integratioin_time_lineEdit->text().toDouble());
|
m_Imager->setIntegrationTime(this->ui.integratioin_time_lineEdit->text().toDouble());
|
||||||
ui.IntegratioinTimeSlider->setValue(ui.integratioin_time_lineEdit->text().toDouble());
|
ui.IntegratioinTimeSlider->setValue(ui.integratioin_time_lineEdit->text().toDouble());
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::OnIntegratioinTimeSliderChanged(double IntegratioinTime)
|
void HPPA::OnIntegratioinTimeSliderChanged(double IntegratioinTime)
|
||||||
{
|
{
|
||||||
std::cout << "Slider<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>------------------------------------------" << std::endl;
|
std::cout << "Slider设置积分时间------------------------------------------" << std::endl;
|
||||||
m_Imager->setIntegrationTime(IntegratioinTime);
|
m_Imager->setIntegrationTime(IntegratioinTime);
|
||||||
ui.integratioin_time_lineEdit->setText(QString::number(IntegratioinTime));
|
ui.integratioin_time_lineEdit->setText(QString::number(IntegratioinTime));
|
||||||
}
|
}
|
||||||
@ -1142,7 +1142,7 @@ void HPPA::onLeftMouseButtonPressed(int x, int y)
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>ڲɼ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//正在采集时,不能显示光谱曲线
|
||||||
if (m_RecordState % 2 == 1)
|
if (m_RecordState % 2 == 1)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -1174,10 +1174,10 @@ void HPPA::onLeftMouseButtonPressed(int x, int y)
|
|||||||
int start = m_Imager->getStartBand();
|
int start = m_Imager->getStartBand();
|
||||||
for (size_t i = 0; i < m_Imager->getBandCount() - 1; i++)
|
for (size_t i = 0; i < m_Imager->getBandCount() - 1; i++)
|
||||||
{
|
{
|
||||||
//malloc<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>÷<EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//malloc申请的内存用法1:可以当做数组用
|
||||||
series->append(m_Imager->getWavelengthAtBand(i + start), data[i]);
|
series->append(m_Imager->getWavelengthAtBand(i + start), data[i]);
|
||||||
|
|
||||||
////malloc<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>÷<EFBFBD>2<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
////malloc申请的内存用法2:指针存取
|
||||||
//series->append(m_Imager->getWavelengthAtBand(i), *data);
|
//series->append(m_Imager->getWavelengthAtBand(i), *data);
|
||||||
//data++;
|
//data++;
|
||||||
}
|
}
|
||||||
@ -1187,10 +1187,10 @@ void HPPA::onLeftMouseButtonPressed(int x, int y)
|
|||||||
int start = 0;
|
int start = 0;
|
||||||
for (size_t i = 0; i < m_Imager->getBandCount() - 1; i++)
|
for (size_t i = 0; i < m_Imager->getBandCount() - 1; i++)
|
||||||
{
|
{
|
||||||
//malloc<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>÷<EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//malloc申请的内存用法1:可以当做数组用
|
||||||
series->append(m_Imager->getWavelengthAtBand(i + start), data[i]);
|
series->append(m_Imager->getWavelengthAtBand(i + start), data[i]);
|
||||||
|
|
||||||
////malloc<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>÷<EFBFBD>2<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
////malloc申请的内存用法2:指针存取
|
||||||
//series->append(m_Imager->getWavelengthAtBand(i), *data);
|
//series->append(m_Imager->getWavelengthAtBand(i), *data);
|
||||||
//data++;
|
//data++;
|
||||||
}
|
}
|
||||||
@ -1198,7 +1198,7 @@ void HPPA::onLeftMouseButtonPressed(int x, int y)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
msgBox.setText(QString::fromLocal8Bit("请选择相机!"));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -1214,14 +1214,14 @@ void HPPA::onLeftMouseButtonPressed(int x, int y)
|
|||||||
|
|
||||||
setAxis(axisX, axisY);
|
setAxis(axisX, axisY);
|
||||||
|
|
||||||
/*std::cout << "x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << x << std::endl;
|
/*std::cout << "x坐标:" << x << std::endl;
|
||||||
std::cout << "y<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << y << std::endl;
|
std::cout << "y坐标:" << y << std::endl;
|
||||||
std::cout << "<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>:" << imgPath << std::endl;*/
|
std::cout << "文件名:" << imgPath << std::endl;*/
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (const std::exception&)
|
catch (const std::exception&)
|
||||||
{
|
{
|
||||||
std::cout << "<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
std::cout << "显示光谱有错误!" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1233,15 +1233,15 @@ void HPPA::setAxis(QValueAxis* axisX, QValueAxis* axisY)
|
|||||||
QPen axisPen(QColor("#ACCDFF"));
|
QPen axisPen(QColor("#ACCDFF"));
|
||||||
axisPen.setWidth(1);
|
axisPen.setWidth(1);
|
||||||
|
|
||||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
// 坐标轴线颜色
|
||||||
axisX->setLinePen(axisPen);
|
axisX->setLinePen(axisPen);
|
||||||
axisY->setLinePen(axisPen);
|
axisY->setLinePen(axisPen);
|
||||||
|
|
||||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD>ɫ
|
// 坐标标签颜色
|
||||||
axisX->setLabelsColor(QColor("#ACCDFF"));
|
axisX->setLabelsColor(QColor("#ACCDFF"));
|
||||||
axisY->setLabelsColor(QColor("#ACCDFF"));
|
axisY->setLabelsColor(QColor("#ACCDFF"));
|
||||||
|
|
||||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
// 网格线颜色
|
||||||
QPen gridPen(QColor("#262A4C"));
|
QPen gridPen(QColor("#262A4C"));
|
||||||
gridPen.setStyle(Qt::DashLine);
|
gridPen.setStyle(Qt::DashLine);
|
||||||
gridPen.setWidth(2);
|
gridPen.setWidth(2);
|
||||||
@ -1272,12 +1272,12 @@ void HPPA::OnSendLogToCallClass(QString str)
|
|||||||
|
|
||||||
void HPPA::onPlotRgbImage()
|
void HPPA::onPlotRgbImage()
|
||||||
{
|
{
|
||||||
//std::cout << "<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>Ƶ+++++++++++++++++++++++++++++++++++++++++++" << std::endl;
|
//std::cout << "显示视频+++++++++++++++++++++++++++++++++++++++++++" << std::endl;
|
||||||
QPixmap pixmap = QPixmap::fromImage(m_RgbCamera->m_qImage);
|
QPixmap pixmap = QPixmap::fromImage(m_RgbCamera->m_qImage);
|
||||||
|
|
||||||
int width = m_cam_label->width();
|
int width = m_cam_label->width();
|
||||||
int height = m_cam_label->height();
|
int height = m_cam_label->height();
|
||||||
QPixmap fitpixmap = pixmap.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
QPixmap fitpixmap = pixmap.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation); //按比例缩放
|
||||||
|
|
||||||
|
|
||||||
m_cam_label->setPixmap(fitpixmap);
|
m_cam_label->setPixmap(fitpixmap);
|
||||||
@ -1285,7 +1285,7 @@ void HPPA::onPlotRgbImage()
|
|||||||
|
|
||||||
void HPPA::onCloseRgbCamera()
|
void HPPA::onCloseRgbCamera()
|
||||||
{
|
{
|
||||||
//std::cout << "<EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD>Ƶ+++++++++++++++++++++++++++++++++++++++++++" << std::endl;
|
//std::cout << "关闭视频+++++++++++++++++++++++++++++++++++++++++++" << std::endl;
|
||||||
m_RgbCamera->CloseCamera();
|
m_RgbCamera->CloseCamera();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1312,7 +1312,7 @@ void HPPA::getRequest(QString str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::requestFinished(QNetworkReply* reply) {
|
void HPPA::requestFinished(QNetworkReply* reply) {
|
||||||
// <EFBFBD><EFBFBD>ȡhttp״̬<EFBFBD><EFBFBD>
|
// 获取http状态码
|
||||||
QVariant statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
|
QVariant statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
|
||||||
if (statusCode.isValid())
|
if (statusCode.isValid())
|
||||||
qDebug() << "status code=" << statusCode.toInt();
|
qDebug() << "status code=" << statusCode.toInt();
|
||||||
@ -1326,7 +1326,7 @@ void HPPA::requestFinished(QNetworkReply* reply) {
|
|||||||
qDebug() << "Failed: " << reply->errorString();
|
qDebug() << "Failed: " << reply->errorString();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// 获取返回内容
|
||||||
qDebug() << reply->readAll();
|
qDebug() << reply->readAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1340,16 +1340,16 @@ void HPPA::onconnect()
|
|||||||
{
|
{
|
||||||
if (m_Imager != nullptr)
|
if (m_Imager != nullptr)
|
||||||
{
|
{
|
||||||
//std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>" << std::endl;
|
//std::cout << "相机已经连接!" << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//<EFBFBD>ɼ<EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD>̣߳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><EFBFBD>вɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD>濨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>https://www.cnblogs.com/xia-weiwen/p/10306089.html
|
//采集影像线程:放入新线程中采集以免在采集过程中界面卡死:https://www.cnblogs.com/xia-weiwen/p/10306089.html
|
||||||
m_RecordThread = new QThread();
|
m_RecordThread = new QThread();
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mImagerGroup
|
//根据选择的相机类型创建对象mImagerGroup
|
||||||
QString imagerSelected = mImagerGroup->checkedAction()->objectName();
|
QString imagerSelected = mImagerGroup->checkedAction()->objectName();
|
||||||
if (imagerSelected == "mActionPica_L")
|
if (imagerSelected == "mActionPica_L")
|
||||||
{
|
{
|
||||||
@ -1370,7 +1370,7 @@ void HPPA::onconnect()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
msgBox.setText(QString::fromLocal8Bit("请选择相机!"));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -1387,7 +1387,7 @@ void HPPA::onconnect()
|
|||||||
connect(m_Imager, SIGNAL(SpectralSignal(int)), this, SLOT(PlotSpectral(int)));
|
connect(m_Imager, SIGNAL(SpectralSignal(int)), this, SLOT(PlotSpectral(int)));
|
||||||
//connect(m_Imager, SIGNAL(testImagerStatus()), this, SLOT(testImagerStatus()));
|
//connect(m_Imager, SIGNAL(testImagerStatus()), this, SLOT(testImagerStatus()));
|
||||||
|
|
||||||
//<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//文件拷贝
|
||||||
m_CopyFileThread = new QThread();
|
m_CopyFileThread = new QThread();
|
||||||
m_FileOperation = new FileOperation();
|
m_FileOperation = new FileOperation();
|
||||||
m_FileOperation->moveToThread(m_CopyFileThread);
|
m_FileOperation->moveToThread(m_CopyFileThread);
|
||||||
@ -1395,7 +1395,7 @@ void HPPA::onconnect()
|
|||||||
connect(this, SIGNAL(CopyFileThreadSignal(QString, QString)), m_FileOperation, SLOT(copyFile(QString, QString)));
|
connect(this, SIGNAL(CopyFileThreadSignal(QString, QString)), m_FileOperation, SLOT(copyFile(QString, QString)));
|
||||||
connect(m_FileOperation, SIGNAL(CopyFinishedSignal()), this, SLOT(onCopyFinished()));
|
connect(m_FileOperation, SIGNAL(CopyFinishedSignal()), this, SLOT(onCopyFinished()));
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
//检测光谱仪连接状态
|
||||||
m_TestImagerStausThread = new WorkerThread(m_Imager);
|
m_TestImagerStausThread = new WorkerThread(m_Imager);
|
||||||
|
|
||||||
|
|
||||||
@ -1426,7 +1426,7 @@ void HPPA::onconnect()
|
|||||||
connect(this->ui.GainSlider, SIGNAL(valueChanged(double)), this, SLOT(OnGainSliderChanged(double)));
|
connect(this->ui.GainSlider, SIGNAL(valueChanged(double)), this, SLOT(OnGainSliderChanged(double)));
|
||||||
|
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//相机参数控件设置为可用 + 输入控制
|
||||||
frame_number->setEnabled(true);
|
frame_number->setEnabled(true);
|
||||||
|
|
||||||
ui.framerate_lineEdit->setEnabled(true);
|
ui.framerate_lineEdit->setEnabled(true);
|
||||||
@ -1444,7 +1444,7 @@ void HPPA::onconnect()
|
|||||||
ui.integratioin_time_lineEdit->setValidator(new QRegExpValidator(rx));
|
ui.integratioin_time_lineEdit->setValidator(new QRegExpValidator(rx));
|
||||||
ui.gain_lineEdit->setValidator(new QRegExpValidator(rx));*/
|
ui.gain_lineEdit->setValidator(new QRegExpValidator(rx));*/
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//获取相机参数并显示到界面中
|
||||||
ui.framerate_lineEdit->setText(QString::number(m_Imager->getFramerate(), 10, 2));
|
ui.framerate_lineEdit->setText(QString::number(m_Imager->getFramerate(), 10, 2));
|
||||||
ui.FramerateSlider->setValue(m_Imager->getFramerate(), true);
|
ui.FramerateSlider->setValue(m_Imager->getFramerate(), true);
|
||||||
CalculateIntegratioinTimeRange();
|
CalculateIntegratioinTimeRange();
|
||||||
@ -1463,7 +1463,7 @@ void HPPA::onconnect()
|
|||||||
m_Imager = nullptr;
|
m_Imager = nullptr;
|
||||||
|
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
msgBox.setText(QString::fromLocal8Bit("请连接相机!"));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1480,7 +1480,7 @@ void HPPA::onAutoExposure()
|
|||||||
{
|
{
|
||||||
double ReturnedExposureTime = m_Imager->auto_exposure();
|
double ReturnedExposureTime = m_Imager->auto_exposure();
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ֵ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//将自动曝光所得的值显示到界面
|
||||||
ui.IntegratioinTimeSlider->setValue(ReturnedExposureTime, false);
|
ui.IntegratioinTimeSlider->setValue(ReturnedExposureTime, false);
|
||||||
|
|
||||||
|
|
||||||
@ -1493,7 +1493,7 @@ void HPPA::onFocus1()
|
|||||||
focusWindow* w = new focusWindow(this, m_Imager);
|
focusWindow* w = new focusWindow(this, m_Imager);
|
||||||
connect(w, SIGNAL(StartManualFocusSignal(int)), this, SLOT(onFocus2(int)));
|
connect(w, SIGNAL(StartManualFocusSignal(int)), this, SLOT(onFocus2(int)));
|
||||||
|
|
||||||
//w->setModal(true);//<EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>Ϊģ̬<EFBFBD><EFBFBD>ֻ<EFBFBD>ܲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//w->setModal(true);//设置窗口为模态:只能操作当前窗口
|
||||||
w->show();
|
w->show();
|
||||||
w->exec();
|
w->exec();
|
||||||
|
|
||||||
@ -1504,7 +1504,7 @@ void HPPA::onFocus2(int command)
|
|||||||
{
|
{
|
||||||
if (command == 1)
|
if (command == 1)
|
||||||
{
|
{
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//创建影像显示窗口
|
||||||
QWidget* tabTmp = new QWidget();
|
QWidget* tabTmp = new QWidget();
|
||||||
|
|
||||||
QGridLayout* GridLayout = new QGridLayout();
|
QGridLayout* GridLayout = new QGridLayout();
|
||||||
@ -1512,13 +1512,13 @@ void HPPA::onFocus2(int command)
|
|||||||
|
|
||||||
tabTmp->setLayout(GridLayout);
|
tabTmp->setLayout(GridLayout);
|
||||||
|
|
||||||
m_imageViewerTabWidget->addTab(tabTmp, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
m_imageViewerTabWidget->addTab(tabTmp, QString::fromLocal8Bit("调焦"));
|
||||||
|
|
||||||
//m_imageViewerTabWidget->setCurrentIndex(trackNumber);
|
//m_imageViewerTabWidget->setCurrentIndex(trackNumber);
|
||||||
m_imageViewerTabWidget->setCurrentWidget(tabTmp);
|
m_imageViewerTabWidget->setCurrentWidget(tabTmp);
|
||||||
|
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//开始调焦
|
||||||
emit StartFocusSignal();
|
emit StartFocusSignal();
|
||||||
}
|
}
|
||||||
else if (command == 0)
|
else if (command == 0)
|
||||||
@ -1537,7 +1537,7 @@ void HPPA::onAbout()
|
|||||||
void HPPA::onDark()
|
void HPPA::onDark()
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>Ǹ<EFBFBD><EFBFBD>ϣ<EFBFBD>"));
|
msgBox.setText(QString::fromLocal8Bit("采集暗电流,请确保镜头盖盖上!"));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
|
|
||||||
QAction* checked = moveplatformActionGroup->checkedAction();
|
QAction* checked = moveplatformActionGroup->checkedAction();
|
||||||
@ -1567,7 +1567,7 @@ void HPPA::recordDarkFinish()
|
|||||||
void HPPA::onReference()
|
void HPPA::onReference()
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>"));
|
msgBox.setText(QString::fromLocal8Bit("请确保白板放置正确!"));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
|
|
||||||
QAction* checked = moveplatformActionGroup->checkedAction();
|
QAction* checked = moveplatformActionGroup->checkedAction();
|
||||||
@ -1596,7 +1596,7 @@ void HPPA::recordWhiteFinish()
|
|||||||
|
|
||||||
void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber)
|
void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber)
|
||||||
{
|
{
|
||||||
//ʹ<EFBFBD>û<EFBFBD>е<EFBFBD>۲ɼ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>ʼ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᵼ<EFBFBD><EFBFBD><EFBFBD>ϴβɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŵ<EFBFBD><EFBFBD>ô˲ۺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//使用机械臂采集时,会在停止采集后的瞬间又开始采集,会导致上次采集最后发射的信号调用此槽函数报错
|
||||||
QAction* checked = moveplatformActionGroup->checkedAction();
|
QAction* checked = moveplatformActionGroup->checkedAction();
|
||||||
QString checkedName = checked->objectName();
|
QString checkedName = checked->objectName();
|
||||||
if (frameNumber == -1 && checkedName == "mAction_RobotArm")
|
if (frameNumber == -1 && checkedName == "mAction_RobotArm")
|
||||||
@ -1605,60 +1605,60 @@ void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//return;
|
//return;
|
||||||
//<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ͼ<EFBFBD>ؼ<EFBFBD>
|
//获取绘图控件
|
||||||
QWidget* currentWidget = m_imageViewerTabWidget->widget(fileNumber);
|
QWidget* currentWidget = m_imageViewerTabWidget->widget(fileNumber);
|
||||||
QList<ImageViewer*> currentImageViewer = currentWidget->findChildren<ImageViewer*>();
|
QList<ImageViewer*> currentImageViewer = currentWidget->findChildren<ImageViewer*>();
|
||||||
currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFrameCounter());//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ѿ<EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>
|
currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFrameCounter());//界面中显示已经采集的帧数
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>--opencv<EFBFBD>汾
|
//创建需要显示的图像--opencv版本
|
||||||
ImageProcessor imageProcessor;
|
ImageProcessor imageProcessor;
|
||||||
//cv::Mat rgbImage(*m_Imager->getRgbImage()->m_matRgbImage, cv::Range(0, m_Imager->getFrameCounter()), cv::Range::all());//2022.3.18<EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD>
|
//cv::Mat rgbImage(*m_Imager->getRgbImage()->m_matRgbImage, cv::Range(0, m_Imager->getFrameCounter()), cv::Range::all());//2022.3.18重构的
|
||||||
cv::Mat rgbImage(*m_Imager->getMatRgbImage(), cv::Range(0, m_Imager->getFrameCounter()), cv::Range::all());
|
cv::Mat rgbImage(*m_Imager->getMatRgbImage(), cv::Range(0, m_Imager->getFrameCounter()), cv::Range::all());
|
||||||
cv::Mat rgbImageStretched = imageProcessor.CStretch(rgbImage, 0.02);
|
cv::Mat rgbImageStretched = imageProcessor.CStretch(rgbImage, 0.02);
|
||||||
|
|
||||||
//<EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾͼ<EFBFBD><EFBFBD>
|
//在界面中显示图像
|
||||||
currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(rgbImageStretched)));//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>
|
currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(rgbImageStretched)));//绘制图像
|
||||||
|
|
||||||
//20241225
|
//20241225
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rgb
|
//保存拉伸后的rgb
|
||||||
//FileOperation* fileOperation = new FileOperation();
|
//FileOperation* fileOperation = new FileOperation();
|
||||||
//string directory = fileOperation->getDirectoryOfExe();
|
//string directory = fileOperation->getDirectoryOfExe();
|
||||||
//string rgbFilePathNoStrech = directory + "\\tmp_image_no_strech.png";//δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
|
//string rgbFilePathNoStrech = directory + "\\tmp_image_no_strech.png";//未拉伸图片
|
||||||
//string rgbFilePathStrech = directory + "\\tmp_image_strech.png";//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
|
//string rgbFilePathStrech = directory + "\\tmp_image_strech.png";//拉伸图片
|
||||||
//cv::imwrite(rgbFilePathNoStrech, rgbImage);
|
//cv::imwrite(rgbFilePathNoStrech, rgbImage);
|
||||||
//cv::imwrite(rgbFilePathStrech, rgbImageStretched);
|
//cv::imwrite(rgbFilePathStrech, rgbImageStretched);
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>--qt<EFBFBD>汾
|
//创建需要显示的图像--qt版本
|
||||||
//QRect CuttedRect = m_Imager->getRgbImage()->m_QRgbImage->rect();//<EFBFBD>Ȼ<EFBFBD>ȡimage<EFBFBD><EFBFBD><EFBFBD><EFBFBD>rect
|
//QRect CuttedRect = m_Imager->getRgbImage()->m_QRgbImage->rect();//先获取image整个rect
|
||||||
//CuttedRect.setHeight(m_Imager->getFrameCounter() - 1);//<EFBFBD>ü<EFBFBD>rect
|
//CuttedRect.setHeight(m_Imager->getFrameCounter() - 1);//裁剪rect
|
||||||
//QImage CuttedImage = m_Imager->getRgbImage()->m_QRgbImage->copy(CuttedRect);
|
//QImage CuttedImage = m_Imager->getRgbImage()->m_QRgbImage->copy(CuttedRect);
|
||||||
|
|
||||||
//currentImageViewer[0]->SetImage(&QPixmap::fromImage(CuttedImage));//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>
|
//currentImageViewer[0]->SetImage(&QPixmap::fromImage(CuttedImage));//绘制图像
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::PlotSpectral(int state)
|
void HPPA::PlotSpectral(int state)
|
||||||
{
|
{
|
||||||
if (state == 1)
|
if (state == 1)
|
||||||
{
|
{
|
||||||
//<EFBFBD><EFBFBD>ʾӰ<EFBFBD><EFBFBD>
|
//显示影像
|
||||||
QWidget* currentWidget = m_imageViewerTabWidget->currentWidget();
|
QWidget* currentWidget = m_imageViewerTabWidget->currentWidget();
|
||||||
QList<ImageViewer*> currentImageViewer = currentWidget->findChildren<ImageViewer*>();
|
QList<ImageViewer*> currentImageViewer = currentWidget->findChildren<ImageViewer*>();
|
||||||
currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ѿ<EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>
|
currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//界面中显示已经采集的帧数
|
||||||
|
|
||||||
ImageProcessor imageProcessor;
|
ImageProcessor imageProcessor;
|
||||||
//cv::Mat grayImage(*m_Imager->getRgbImage()->m_matFocusGrayImage, cv::Range::all(), cv::Range::all());//2022.3.18<EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD>
|
//cv::Mat grayImage(*m_Imager->getRgbImage()->m_matFocusGrayImage, cv::Range::all(), cv::Range::all());//2022.3.18重构的
|
||||||
//cv::Mat grayImage(*m_Imager->getMatFocusGrayImage(), cv::Range::all(), cv::Range::all());
|
//cv::Mat grayImage(*m_Imager->getMatFocusGrayImage(), cv::Range::all(), cv::Range::all());
|
||||||
//currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(grayImage)));//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>
|
//currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(grayImage)));//绘制图像
|
||||||
|
|
||||||
currentImageViewer[0]->SetImage(&QPixmap::fromImage(m_Imager->getQImageFocusGrayImage()));//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>
|
currentImageViewer[0]->SetImage(&QPixmap::fromImage(m_Imager->getQImageFocusGrayImage()));//绘制图像
|
||||||
|
|
||||||
//<EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><EFBFBD><EFBFBD>
|
//绘制光谱
|
||||||
QLineSeries* series = new QLineSeries();
|
QLineSeries* series = new QLineSeries();
|
||||||
//series->clear();//////////////////////////////
|
//series->clear();//////////////////////////////
|
||||||
int sampleCount = m_Imager->getSampleCount();
|
int sampleCount = m_Imager->getSampleCount();
|
||||||
for (size_t i = 0; i < sampleCount; i++)
|
for (size_t i = 0; i < sampleCount; i++)
|
||||||
{
|
{
|
||||||
//malloc<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>÷<EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//malloc申请的内存用法1:可以当做数组用
|
||||||
//series->append(i, m_Imager->buffer[i + 5 * 900]);
|
//series->append(i, m_Imager->buffer[i + 5 * 900]);
|
||||||
//series->append(i, m_Imager->buffer[900 * 150 + i]);
|
//series->append(i, m_Imager->buffer[900 * 150 + i]);
|
||||||
series->append(i, m_Imager->buffer[1368 * 150 + i]);
|
series->append(i, m_Imager->buffer[1368 * 150 + i]);
|
||||||
@ -1674,12 +1674,12 @@ void HPPA::PlotSpectral(int state)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵİ<EFBFBD>ť<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//改变界面上的按钮文字
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////<EFBFBD><EFBFBD>ʾӰ<EFBFBD><EFBFBD>
|
////显示影像
|
||||||
//QWidget* currentWidget = m_imageViewerTabWidget->currentWidget();
|
//QWidget* currentWidget = m_imageViewerTabWidget->currentWidget();
|
||||||
//QList<ImageViewer *> currentImageViewer = currentWidget->findChildren<ImageViewer *>();
|
//QList<ImageViewer *> currentImageViewer = currentWidget->findChildren<ImageViewer *>();
|
||||||
//
|
//
|
||||||
@ -1687,7 +1687,7 @@ void HPPA::PlotSpectral(int state)
|
|||||||
//ImageProcessor imageProcessor;
|
//ImageProcessor imageProcessor;
|
||||||
//
|
//
|
||||||
|
|
||||||
////<EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><EFBFBD><EFBFBD>
|
////绘制光谱
|
||||||
//QLineSeries *series = new QLineSeries();
|
//QLineSeries *series = new QLineSeries();
|
||||||
////series->clear();//////////////////////////////
|
////series->clear();//////////////////////////////
|
||||||
//int sampleCount = m_Imager->getSampleCount();
|
//int sampleCount = m_Imager->getSampleCount();
|
||||||
@ -1703,13 +1703,13 @@ void HPPA::PlotSpectral(int state)
|
|||||||
|
|
||||||
//while (state)
|
//while (state)
|
||||||
//{
|
//{
|
||||||
// currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ѿ<EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>
|
// currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//界面中显示已经采集的帧数
|
||||||
// cv::Mat grayImage(*m_Imager->getMatFocusGrayImage(), cv::Range::all(), cv::Range::all());
|
// cv::Mat grayImage(*m_Imager->getMatFocusGrayImage(), cv::Range::all(), cv::Range::all());
|
||||||
// currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(grayImage)));//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>
|
// currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(grayImage)));//绘制图像
|
||||||
|
|
||||||
// for (size_t i = 0; i < sampleCount; i++)
|
// for (size_t i = 0; i < sampleCount; i++)
|
||||||
// {
|
// {
|
||||||
// //malloc<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>÷<EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// //malloc申请的内存用法1:可以当做数组用
|
||||||
// //series->append(i, m_Imager->buffer[i + 5 * 900]);
|
// //series->append(i, m_Imager->buffer[i + 5 * 900]);
|
||||||
// series->append(i, m_Imager->buffer[900 * 150 + i]);
|
// series->append(i, m_Imager->buffer[900 * 150 + i]);
|
||||||
// }
|
// }
|
||||||
@ -1723,12 +1723,12 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberMeet()
|
|||||||
QAction* checked = moveplatformActionGroup->checkedAction();
|
QAction* checked = moveplatformActionGroup->checkedAction();
|
||||||
QString checkedName = checked->objectName();
|
QString checkedName = checked->objectName();
|
||||||
|
|
||||||
std::cout << "ֹͣ<EFBFBD>ɼ<EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>" << std::endl;
|
std::cout << "停止采集原因:帧数采集完了。" << std::endl;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
|
|
||||||
m_RecordState++;//<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<EFBFBD>ɼ<EFBFBD>
|
m_RecordState++;//当自动停止采集
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet()
|
void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet()
|
||||||
@ -1736,19 +1736,19 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet()
|
|||||||
QAction* checked = moveplatformActionGroup->checkedAction();
|
QAction* checked = moveplatformActionGroup->checkedAction();
|
||||||
QString checkedName = checked->objectName();
|
QString checkedName = checked->objectName();
|
||||||
|
|
||||||
if (checkedName == "mAction_RobotArm")//<EFBFBD><EFBFBD>е<EFBFBD>ۻ<EFBFBD><EFBFBD><EFBFBD>ֹͣ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>ʼ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ui.action_start_recording<EFBFBD><EFBFBD>ʾ<EFBFBD>쳣
|
if (checkedName == "mAction_RobotArm")//机械臂会在停止采集后的瞬间又开始采集,导致ui.action_start_recording显示异常
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (checkedName == "mAction_2AxisMotor_new")//<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if (checkedName == "mAction_2AxisMotor_new")//会有多条采集线,中间的某条采集线完成后不代表整个采集过程完成
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "ֹͣ<EFBFBD>ɼ<EFBFBD>ԭ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>û<EFBFBD>вɼ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﵽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>ֹͣ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
std::cout << "停止采集原因:(1)帧数没有采集够时,马达到达最大位置;(2)手动停止采集。" << std::endl;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
|
|
||||||
m_RecordState++;
|
m_RecordState++;
|
||||||
@ -1756,7 +1756,7 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet()
|
|||||||
|
|
||||||
void HPPA::onsequenceComplete()
|
void HPPA::onsequenceComplete()
|
||||||
{
|
{
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
|
|
||||||
m_RecordState++;
|
m_RecordState++;
|
||||||
|
|||||||
Reference in New Issue
Block a user