美化:
工具栏+图像控制看板
This commit is contained in:
183
HPPA/HPPA.cpp
183
HPPA/HPPA.cpp
@ -31,6 +31,8 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
s_instance = this;
|
s_instance = this;
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
|
|
||||||
|
setWindowFlags(Qt::FramelessWindowHint);
|
||||||
|
|
||||||
// register MapLayer* metatype for queued signal/slot across threads
|
// register MapLayer* metatype for queued signal/slot across threads
|
||||||
qRegisterMetaType<MapLayer*>("MapLayer*");
|
qRegisterMetaType<MapLayer*>("MapLayer*");
|
||||||
|
|
||||||
@ -635,6 +637,7 @@ void HPPA::initMenubarToolbar()
|
|||||||
|
|
||||||
hLayout_menuWidget->addStretch();
|
hLayout_menuWidget->addStretch();
|
||||||
QPushButton* closeBtn = new QPushButton(QString::fromLocal8Bit("退出平台"));
|
QPushButton* closeBtn = new QPushButton(QString::fromLocal8Bit("退出平台"));
|
||||||
|
connect(closeBtn, SIGNAL(released()), this, SLOT(onExit()));
|
||||||
closeBtn->setStyleSheet(R"(
|
closeBtn->setStyleSheet(R"(
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background: #002CE0;
|
background: #002CE0;
|
||||||
@ -655,7 +658,7 @@ void HPPA::initMenubarToolbar()
|
|||||||
|
|
||||||
//QToolBar* toolBar = this->findChild<QToolBar*>("mainToolBar");
|
//QToolBar* toolBar = this->findChild<QToolBar*>("mainToolBar");
|
||||||
QToolBar* toolBar = ui.mainToolBar;
|
QToolBar* toolBar = ui.mainToolBar;
|
||||||
//hLayout_toolBarWidget->addWidget(toolBar);
|
hLayout_toolBarWidget->addWidget(toolBar);
|
||||||
toolBar->setAttribute(Qt::WA_TranslucentBackground, true);
|
toolBar->setAttribute(Qt::WA_TranslucentBackground, true);
|
||||||
toolBar->setAutoFillBackground(false);
|
toolBar->setAutoFillBackground(false);
|
||||||
toolBar->setIconSize(QSize(56, 56));
|
toolBar->setIconSize(QSize(56, 56));
|
||||||
@ -665,24 +668,96 @@ void HPPA::initMenubarToolbar()
|
|||||||
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);
|
||||||
frame_number->setText("5000");
|
frame_number->setText("5000");
|
||||||
|
frame_number->setStyleSheet(R"(
|
||||||
|
QLineEdit {
|
||||||
|
background-color: #142D7F;
|
||||||
|
color: #e6eeff;
|
||||||
|
border: 1px solid #2f6bff;
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-width: 70px;
|
||||||
|
min-height: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
QLineEdit:hover {
|
||||||
|
border: 1px solid #4d8dff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLineEdit:focus {
|
||||||
|
border: 1px solid #6aa2ff;
|
||||||
|
background-color: #23345c;
|
||||||
|
}
|
||||||
|
)");
|
||||||
QAction* action = ui.mainToolBar->insertWidget(ui.action_start_recording, frame_number);
|
QAction* action = ui.mainToolBar->insertWidget(ui.action_start_recording, frame_number);
|
||||||
|
|
||||||
m_FilenameLineEdit = new QLineEdit(ui.mainToolBar);
|
m_FilenameLineEdit = new QLineEdit(ui.mainToolBar);
|
||||||
m_FilenameLineEdit->setStyleSheet("QLineEdit{background-color:rgb(255,255,255);}");
|
m_FilenameLineEdit->setStyleSheet("QLineEdit{background-color:rgb(255,255,255);}");
|
||||||
m_FilenameLineEdit->setMaximumWidth(100);
|
m_FilenameLineEdit->setMaximumWidth(100);
|
||||||
m_FilenameLineEdit->setText("tmp_image");
|
m_FilenameLineEdit->setText("tmp_image");
|
||||||
|
m_FilenameLineEdit->setStyleSheet(R"(
|
||||||
|
QLineEdit {
|
||||||
|
background-color: #142D7F;
|
||||||
|
color: #e6eeff;
|
||||||
|
border: 1px solid #2f6bff;
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-width: 70px;
|
||||||
|
min-height: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
QLineEdit:hover {
|
||||||
|
border: 1px solid #4d8dff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLineEdit:focus {
|
||||||
|
border: 1px solid #6aa2ff;
|
||||||
|
background-color: #23345c;
|
||||||
|
}
|
||||||
|
)");
|
||||||
QAction* action1 = ui.mainToolBar->insertWidget(ui.action_start_recording, m_FilenameLineEdit);
|
QAction* action1 = ui.mainToolBar->insertWidget(ui.action_start_recording, m_FilenameLineEdit);
|
||||||
|
|
||||||
ui.action_connect_imager->setIcon(QIcon(".//icon//all//connect_imager.png"));
|
QWidget* spacer = new QWidget();
|
||||||
ui.action_auto_exposure->setIcon(QIcon(".//icon//all//exposure.png"));
|
spacer->setFixedWidth(10); // 间距大小自己调
|
||||||
ui.action_focus->setIcon(QIcon(".//icon//all//focus.png"));
|
ui.mainToolBar->insertWidget(action1, spacer);
|
||||||
ui.action_dark->setIcon(QIcon(".//icon//all//dark.png"));
|
|
||||||
ui.action_reference->setIcon(QIcon(".//icon//all//reference.png"));
|
|
||||||
|
QAction* sepAction = ui.mainToolBar->insertSeparator(ui.mActionPan);
|
||||||
|
QWidget* sepWidget = ui.mainToolBar->widgetForAction(sepAction);
|
||||||
|
if (sepWidget) {
|
||||||
|
//sepWidget->setFixedWidth(15); // 调整宽度
|
||||||
|
sepWidget->setStyleSheet("background-color: #2C586C;"); // 调整颜色
|
||||||
|
}
|
||||||
|
|
||||||
|
ui.action_connect_imager->setIcon(QIcon(".//icon//all//connect_imager.svg"));
|
||||||
|
ui.action_auto_exposure->setIcon(QIcon(".//icon//all//exposure.svg"));
|
||||||
|
ui.action_focus->setIcon(QIcon(".//icon//all//focus.svg"));
|
||||||
|
ui.action_dark->setIcon(QIcon(".//icon//all//dark.svg"));
|
||||||
|
ui.action_reference->setIcon(QIcon(".//icon//all//reference.svg"));
|
||||||
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record.svg"));
|
||||||
|
ui.actionOpenDirectory->setIcon(QIcon(".//icon//all//openDirectory.svg"));
|
||||||
|
|
||||||
|
ui.mActionPan->setIcon(QIcon(".//icon//all//pan.svg"));
|
||||||
|
ui.mActionSpectral->setIcon(QIcon(".//icon//all//spectral.svg"));
|
||||||
|
|
||||||
|
connect(ui.mActionPan, &QAction::toggled, this, [=](bool checked) {
|
||||||
|
if (checked)
|
||||||
|
ui.mActionPan->setIcon(QIcon(".//icon//all//pan_done.svg"));
|
||||||
|
else
|
||||||
|
ui.mActionPan->setIcon(QIcon(".//icon//all//pan.svg"));
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(ui.mActionSpectral, &QAction::toggled, this, [=](bool checked) {
|
||||||
|
if (checked)
|
||||||
|
ui.mActionSpectral->setIcon(QIcon(".//icon//all//spectral_done.svg"));
|
||||||
|
else
|
||||||
|
ui.mActionSpectral->setIcon(QIcon(".//icon//all//spectral.svg"));
|
||||||
|
});
|
||||||
|
|
||||||
// 使用样式表设置透明背景
|
// 使用样式表设置透明背景
|
||||||
toolBar->setStyleSheet(R"(
|
toolBar->setStyleSheet(R"(
|
||||||
QToolBar {
|
QToolBar {
|
||||||
background: #0D1233;/*transparent*/
|
background: #0D1233;/*transparent*/
|
||||||
border: 1px solid #444;
|
border: 1px solid #2C586C;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
QToolButton {
|
QToolButton {
|
||||||
@ -700,7 +775,7 @@ ui.action_dark->setIcon(QIcon(".//icon//all//dark.png"));
|
|||||||
topWidget->setStyleSheet("background-color: #040125;");
|
topWidget->setStyleSheet("background-color: #040125;");
|
||||||
QVBoxLayout* verticalLayout_topWidget = new QVBoxLayout(topWidget);
|
QVBoxLayout* verticalLayout_topWidget = new QVBoxLayout(topWidget);
|
||||||
verticalLayout_topWidget->addWidget(menuWidget);
|
verticalLayout_topWidget->addWidget(menuWidget);
|
||||||
//verticalLayout_topWidget->addWidget(toolBarWidget);
|
verticalLayout_topWidget->addWidget(toolBarWidget);
|
||||||
setMenuWidget(topWidget);
|
setMenuWidget(topWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -771,7 +846,8 @@ void HPPA::recordFromRobotArm(int fileCounter)
|
|||||||
m_Imager->setRecordControlState(false);
|
m_Imager->setRecordControlState(false);
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
//qDebug() << "recordFromRobotArm: 1111111111111111111111";
|
//qDebug() << "recordFromRobotArm: 1111111111111111111111";
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -787,7 +863,8 @@ void HPPA::recordFromRobotArm(int fileCounter)
|
|||||||
emit StartRecordSignal();
|
emit StartRecordSignal();
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("采集中"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集中"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_ing.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
||||||
//qDebug() << "recordFromRobotArm: 2222222222222222222222";
|
//qDebug() << "recordFromRobotArm: 2222222222222222222222";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1214,7 +1291,8 @@ void HPPA::onStartRecordStep1()
|
|||||||
emit StartRecordSignal();//发射开始采集信号
|
emit StartRecordSignal();//发射开始采集信号
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_ing.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1222,7 +1300,8 @@ void HPPA::onStartRecordStep1()
|
|||||||
m_RecordState -= 1;
|
m_RecordState -= 1;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1236,7 +1315,8 @@ void HPPA::onStartRecordStep1()
|
|||||||
removeAllLayersInRasterGroup();
|
removeAllLayersInRasterGroup();
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_ing.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
||||||
|
|
||||||
//应该先控制马达运动,当马达运动后,再开始光谱仪采集(发射开始采集信号)
|
//应该先控制马达运动,当马达运动后,再开始光谱仪采集(发射开始采集信号)
|
||||||
m_Imager->setFileName2Save(imgPath);
|
m_Imager->setFileName2Save(imgPath);
|
||||||
@ -1250,7 +1330,8 @@ void HPPA::onStartRecordStep1()
|
|||||||
m_RecordState -= 1;
|
m_RecordState -= 1;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1270,7 +1351,8 @@ void HPPA::onStartRecordStep1()
|
|||||||
m_tmc->run();
|
m_tmc->run();
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("停止采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_ing.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1279,7 +1361,8 @@ void HPPA::onStartRecordStep1()
|
|||||||
m_RecordState--;
|
m_RecordState--;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -1588,6 +1671,27 @@ void HPPA::onExit()
|
|||||||
this->close();
|
this->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HPPA::closeEvent(QCloseEvent* event)
|
||||||
|
{
|
||||||
|
QMessageBox::StandardButton ret;
|
||||||
|
|
||||||
|
ret = QMessageBox::question(
|
||||||
|
this,
|
||||||
|
QString::fromLocal8Bit("退出确认"),
|
||||||
|
QString::fromLocal8Bit("确定要退出程序吗?"),
|
||||||
|
QMessageBox::Yes | QMessageBox::No
|
||||||
|
);
|
||||||
|
|
||||||
|
if (ret == QMessageBox::Yes)
|
||||||
|
{
|
||||||
|
event->accept(); // 允许关闭
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event->ignore(); // 取消关闭
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void HPPA::onOpenImg()
|
void HPPA::onOpenImg()
|
||||||
{
|
{
|
||||||
// 1) 弹出文件对话框获取uri
|
// 1) 弹出文件对话框获取uri
|
||||||
@ -1648,16 +1752,22 @@ void HPPA::onconnect()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui.action_connect_imager->setIcon(QIcon(".//icon//all//connect_imager_ing.svg"));
|
||||||
|
|
||||||
m_Imager->moveToThread(m_RecordThread);
|
m_Imager->moveToThread(m_RecordThread);
|
||||||
m_RecordThread->start();
|
m_RecordThread->start();
|
||||||
|
|
||||||
m_Imager->connect_imager(frame_number->text().toInt());
|
|
||||||
m_Imager->setFileName2Save(m_FilenameLineEdit->text().toStdString());
|
|
||||||
connect(m_Imager, SIGNAL(PlotSignal(int, int, QString)), this, SLOT(onPlotHyperspectralImageRgbImage(int, int, QString)));
|
connect(m_Imager, SIGNAL(PlotSignal(int, int, QString)), this, SLOT(onPlotHyperspectralImageRgbImage(int, int, QString)));
|
||||||
connect(m_Imager, SIGNAL(RecordFinishedSignal_WhenFrameNumberMeet()), this, SLOT(onRecordFinishedSignal_WhenFrameNumberMeet()));
|
connect(m_Imager, SIGNAL(RecordFinishedSignal_WhenFrameNumberMeet()), this, SLOT(onRecordFinishedSignal_WhenFrameNumberMeet()));
|
||||||
connect(m_Imager, SIGNAL(RecordFinishedSignal_WhenFrameNumberNotMeet()), this, SLOT(onRecordFinishedSignal_WhenFrameNumberNotMeet()));
|
connect(m_Imager, SIGNAL(RecordFinishedSignal_WhenFrameNumberNotMeet()), this, SLOT(onRecordFinishedSignal_WhenFrameNumberNotMeet()));
|
||||||
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()));
|
||||||
|
connect(m_Imager, &ImagerOperationBase::autoExposureSignal, this, &HPPA::autoExposureFinished);
|
||||||
|
|
||||||
|
m_Imager->connect_imager(frame_number->text().toInt());
|
||||||
|
m_Imager->setFileName2Save(m_FilenameLineEdit->text().toStdString());
|
||||||
|
|
||||||
//文件拷贝
|
//文件拷贝
|
||||||
m_CopyFileThread = new QThread();
|
m_CopyFileThread = new QThread();
|
||||||
@ -1729,6 +1839,8 @@ void HPPA::onconnect()
|
|||||||
}
|
}
|
||||||
catch (std::exception const& e)
|
catch (std::exception const& e)
|
||||||
{
|
{
|
||||||
|
ui.action_connect_imager->setIcon(QIcon(".//icon//all//connect_imager.svg"));
|
||||||
|
|
||||||
std::cerr << "Error: " << e.what() << std::endl;
|
std::cerr << "Error: " << e.what() << std::endl;
|
||||||
|
|
||||||
delete m_Imager;
|
delete m_Imager;
|
||||||
@ -1745,19 +1857,25 @@ void HPPA::onconnect()
|
|||||||
|
|
||||||
void HPPA::testImagerStatus()
|
void HPPA::testImagerStatus()
|
||||||
{
|
{
|
||||||
m_TestImagerStausThread->start();
|
ui.action_connect_imager->setIcon(QIcon(".//icon//all//connect_imager_done.svg"));
|
||||||
|
//m_TestImagerStausThread->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void HPPA::autoExposureFinished()
|
||||||
|
{
|
||||||
|
ui.action_auto_exposure->setIcon(QIcon(".//icon//all//exposure_done.svg"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::onAutoExposure()
|
void HPPA::onAutoExposure()
|
||||||
{
|
{
|
||||||
|
ui.action_auto_exposure->setIcon(QIcon(".//icon//all//exposure_ing.svg"));
|
||||||
|
|
||||||
double ReturnedExposureTime = m_Imager->auto_exposure();
|
double ReturnedExposureTime = m_Imager->auto_exposure();
|
||||||
|
|
||||||
//将自动曝光所得的值显示到界面
|
//将自动曝光所得的值显示到界面
|
||||||
ui.IntegratioinTimeSlider->setValue(ReturnedExposureTime, false);
|
ui.IntegratioinTimeSlider->setValue(ReturnedExposureTime, false);
|
||||||
|
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_auto_exposure)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
ui.mainToolBar->widgetForAction(ui.action_auto_exposure)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
|
||||||
//ui.mainToolBar->widgetForAction(ui.action_auto_exposure)->setStyleSheet("QLineEdit{background-color:rgb(255,255,255);}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::onFocus1()
|
void HPPA::onFocus1()
|
||||||
@ -1812,6 +1930,8 @@ void HPPA::onDark()
|
|||||||
msgBox.setText(QString::fromLocal8Bit("采集暗电流,请确保镜头盖盖上!"));
|
msgBox.setText(QString::fromLocal8Bit("采集暗电流,请确保镜头盖盖上!"));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
|
|
||||||
|
ui.action_dark->setIcon(QIcon(".//icon//all//dark_ing.svg"));
|
||||||
|
|
||||||
QAction* checked = moveplatformActionGroup->checkedAction();
|
QAction* checked = moveplatformActionGroup->checkedAction();
|
||||||
QString checkedName = checked->objectName();
|
QString checkedName = checked->objectName();
|
||||||
if (checkedName == "mAction_is_no_motor" || checkedName == "mAction_RobotArm")
|
if (checkedName == "mAction_is_no_motor" || checkedName == "mAction_RobotArm")
|
||||||
@ -1833,7 +1953,8 @@ void HPPA::onDark()
|
|||||||
|
|
||||||
void HPPA::recordDarkFinish()
|
void HPPA::recordDarkFinish()
|
||||||
{
|
{
|
||||||
ui.mainToolBar->widgetForAction(ui.action_dark)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_dark->setIcon(QIcon(".//icon//all//dark_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_dark)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::onReference()
|
void HPPA::onReference()
|
||||||
@ -1842,6 +1963,8 @@ void HPPA::onReference()
|
|||||||
msgBox.setText(QString::fromLocal8Bit("请确保白板放置正确!"));
|
msgBox.setText(QString::fromLocal8Bit("请确保白板放置正确!"));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
|
|
||||||
|
ui.action_reference->setIcon(QIcon(".//icon//all//reference_ing.svg"));
|
||||||
|
|
||||||
QAction* checked = moveplatformActionGroup->checkedAction();
|
QAction* checked = moveplatformActionGroup->checkedAction();
|
||||||
QString checkedName = checked->objectName();
|
QString checkedName = checked->objectName();
|
||||||
if (checkedName == "mAction_is_no_motor" || checkedName == "mAction_RobotArm")
|
if (checkedName == "mAction_is_no_motor" || checkedName == "mAction_RobotArm")
|
||||||
@ -1863,7 +1986,8 @@ void HPPA::onReference()
|
|||||||
|
|
||||||
void HPPA::recordWhiteFinish()
|
void HPPA::recordWhiteFinish()
|
||||||
{
|
{
|
||||||
ui.mainToolBar->widgetForAction(ui.action_reference)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_reference->setIcon(QIcon(".//icon//all//reference_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_reference)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
}
|
}
|
||||||
|
|
||||||
void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber, QString filePath)
|
void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber, QString filePath)
|
||||||
@ -2000,7 +2124,8 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberMeet()
|
|||||||
std::cout << "停止采集原因:帧数采集完了。" << std::endl;
|
std::cout << "停止采集原因:帧数采集完了。" << std::endl;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
|
|
||||||
m_RecordState++;//当自动停止采集
|
m_RecordState++;//当自动停止采集
|
||||||
}
|
}
|
||||||
@ -2023,7 +2148,8 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet()
|
|||||||
std::cout << "停止采集原因:(1)帧数没有采集够时,马达到达最大位置;(2)手动停止采集。" << std::endl;
|
std::cout << "停止采集原因:(1)帧数没有采集够时,马达到达最大位置;(2)手动停止采集。" << std::endl;
|
||||||
|
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
|
|
||||||
m_RecordState++;
|
m_RecordState++;
|
||||||
}
|
}
|
||||||
@ -2031,7 +2157,8 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet()
|
|||||||
void HPPA::onsequenceComplete()
|
void HPPA::onsequenceComplete()
|
||||||
{
|
{
|
||||||
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
ui.action_start_recording->setText(QString::fromLocal8Bit("采集"));
|
||||||
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
ui.action_start_recording->setIcon(QIcon(".//icon//all//record_done.svg"));
|
||||||
|
//ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||||
|
|
||||||
m_RecordState++;
|
m_RecordState++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -296,6 +296,7 @@ public Q_SLOTS:
|
|||||||
void onOpenImg();
|
void onOpenImg();
|
||||||
void onconnect();//连接相机
|
void onconnect();//连接相机
|
||||||
void testImagerStatus();//获取相机状态:连接是否正常
|
void testImagerStatus();//获取相机状态:连接是否正常
|
||||||
|
void autoExposureFinished();
|
||||||
void onAutoExposure();
|
void onAutoExposure();
|
||||||
void onFocus1();
|
void onFocus1();
|
||||||
void onFocus2(int command);
|
void onFocus2(int command);
|
||||||
@ -351,6 +352,9 @@ public Q_SLOTS:
|
|||||||
|
|
||||||
void onMapToolPanTriggered();
|
void onMapToolPanTriggered();
|
||||||
void onMapToolSpectralTriggered();
|
void onMapToolSpectralTriggered();
|
||||||
|
protected:
|
||||||
|
void closeEvent(QCloseEvent* event) override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void StartFocusSignal();
|
void StartFocusSignal();
|
||||||
void StartRecordSignal();
|
void StartRecordSignal();
|
||||||
|
|||||||
85
HPPA/HPPA.ui
85
HPPA/HPPA.ui
@ -197,16 +197,14 @@ QToolBar QToolButton:hover {
|
|||||||
<addaction name="action_reference"/>
|
<addaction name="action_reference"/>
|
||||||
<addaction name="action_start_recording"/>
|
<addaction name="action_start_recording"/>
|
||||||
<addaction name="actionOpenDirectory"/>
|
<addaction name="actionOpenDirectory"/>
|
||||||
|
<addaction name="mActionPan"/>
|
||||||
|
<addaction name="mActionSpectral"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QStatusBar" name="statusBar">
|
<widget class="QStatusBar" name="statusBar">
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">QStatusBar {
|
<string notr="true">QStatusBar {
|
||||||
|
background-color: #0D1233;
|
||||||
background-color: rgb(255, 255, 255);
|
}
|
||||||
color: white; /* 文字颜色 */
|
|
||||||
border-top: 1px solid #ccc; /* 顶部边框 */
|
|
||||||
padding: 5px; /* 内边距 */
|
|
||||||
}
|
|
||||||
</string>
|
</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
@ -816,18 +814,83 @@ QPushButton:pressed
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QToolBar" name="mapToolBar">
|
<widget class="QToolBar" name="toolBar">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>图像查看</string>
|
<string>toolBar</string>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QToolBar {
|
||||||
|
background: #040125;/*transparent*/
|
||||||
|
border: 1px solid #040125;
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="movable">
|
||||||
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="toolBarArea">
|
<attribute name="toolBarArea">
|
||||||
<enum>TopToolBarArea</enum>
|
<enum>LeftToolBarArea</enum>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="toolBarBreak">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
<widget class="QToolBar" name="toolBar_2">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>toolBar_2</string>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QToolBar {
|
||||||
|
background: #040125;/*transparent*/
|
||||||
|
border: 1px solid #040125;
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="movable">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<attribute name="toolBarArea">
|
||||||
|
<enum>RightToolBarArea</enum>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="toolBarBreak">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
<widget class="QToolBar" name="toolBar_3">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>toolBar_3</string>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QToolBar {
|
||||||
|
background: #040125;/*transparent*/
|
||||||
|
border: 1px solid #040125;
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="movable">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<attribute name="toolBarArea">
|
||||||
|
<enum>BottomToolBarArea</enum>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="toolBarBreak">
|
<attribute name="toolBarBreak">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</attribute>
|
</attribute>
|
||||||
<addaction name="mActionPan"/>
|
|
||||||
<addaction name="mActionSpectral"/>
|
|
||||||
</widget>
|
</widget>
|
||||||
<action name="action_exit">
|
<action name="action_exit">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|||||||
@ -67,6 +67,8 @@ double ImagerOperationBase::auto_exposure()
|
|||||||
|
|
||||||
imagerStopCollect();
|
imagerStopCollect();
|
||||||
|
|
||||||
|
emit autoExposureSignal();
|
||||||
|
|
||||||
//std::cout << "<22>Զ<EFBFBD><D4B6>ع⣺" << getIntegrationTime() << std::endl;
|
//std::cout << "<22>Զ<EFBFBD><D4B6>ع⣺" << getIntegrationTime() << std::endl;
|
||||||
|
|
||||||
return getIntegrationTime();
|
return getIntegrationTime();
|
||||||
|
|||||||
@ -114,6 +114,7 @@ signals:
|
|||||||
|
|
||||||
|
|
||||||
void testImagerStatus();//<2F><>ʾ<EFBFBD><CABE><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
void testImagerStatus();//<2F><>ʾ<EFBFBD><CABE><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
void autoExposureSignal();
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ӱ<EFBFBD><D3B0><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>.bil/.hdr<64><72>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ɺ<C9BA><F3B7A2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳɼ<D3B2><C9BC>̷߳<DFB3><CCB7><EFBFBD><EFBFBD><EFBFBD>Qt <20><><EFBFBD><EFBFBD> queued connection<6F><6E>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ӱ<EFBFBD><D3B0><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>.bil/.hdr<64><72>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ɺ<C9BA><F3B7A2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳɼ<D3B2><C9BC>̷߳<DFB3><CCB7><EFBFBD><EFBFBD><EFBFBD>Qt <20><><EFBFBD><EFBFBD> queued connection<6F><6E>
|
||||||
void ImageFileSaved(const QString& path, int fileIndex);
|
void ImageFileSaved(const QString& path, int fileIndex);
|
||||||
|
|||||||
@ -14,7 +14,56 @@
|
|||||||
<string>Color Adjust</string>
|
<string>Color Adjust</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">QLabel {
|
<string notr="true">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;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel {
|
||||||
color: rgb(255, 255, 255);
|
color: rgb(255, 255, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,15 +234,15 @@ QSlider::handle:horizontal:pressed {
|
|||||||
<property name="title">
|
<property name="title">
|
||||||
<string>预设</string>
|
<string>预设</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="presetLayout">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<item>
|
<item row="0" column="0">
|
||||||
<widget class="QPushButton" name="btnTrueColor">
|
<widget class="QPushButton" name="btnTrueColor">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>真彩色</string>
|
<string>真彩色</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="0" column="1">
|
||||||
<widget class="QPushButton" name="btnColorInfrared">
|
<widget class="QPushButton" name="btnColorInfrared">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>假彩色</string>
|
<string>假彩色</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user