通过自定义控件实现功能:状态栏显示采集帧数;
This commit is contained in:
@ -82,6 +82,8 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
//ui.statusBar->addPermanentWidget(xmotor_state_label1);
|
//ui.statusBar->addPermanentWidget(xmotor_state_label1);
|
||||||
//ui.statusBar->addPermanentWidget(ymotor_state_label1);
|
//ui.statusBar->addPermanentWidget(ymotor_state_label1);
|
||||||
|
|
||||||
|
m_recordFrameCounter = new recordFrameCounter(this);
|
||||||
|
ui.statusBar->addWidget(m_recordFrameCounter);
|
||||||
|
|
||||||
connect(this->ui.action_exit, SIGNAL(triggered()), this, SLOT(onExit()));
|
connect(this->ui.action_exit, SIGNAL(triggered()), this, SLOT(onExit()));
|
||||||
connect(this->ui.mActionOpenImg, SIGNAL(triggered()), this, SLOT(onOpenImg()));
|
connect(this->ui.mActionOpenImg, SIGNAL(triggered()), this, SLOT(onOpenImg()));
|
||||||
@ -1043,6 +1045,10 @@ void HPPA::removeLayerByTreeIndex()
|
|||||||
const int tabIndex = m_imageViewerTabWidget->indexOf(layerWidget);
|
const int tabIndex = m_imageViewerTabWidget->indexOf(layerWidget);
|
||||||
if (tabIndex >= 0)
|
if (tabIndex >= 0)
|
||||||
{
|
{
|
||||||
|
if (m_recordFrameCounter)
|
||||||
|
{
|
||||||
|
m_recordFrameCounter->removeCounter(layerWidget);
|
||||||
|
}
|
||||||
m_imageViewerTabWidget->removeTab(tabIndex);
|
m_imageViewerTabWidget->removeTab(tabIndex);
|
||||||
}
|
}
|
||||||
layerWidget->deleteLater();
|
layerWidget->deleteLater();
|
||||||
@ -1095,6 +1101,10 @@ void HPPA::removeAllLayersInRasterGroup()
|
|||||||
const int tabIndex = m_imageViewerTabWidget->indexOf(layerWidget);
|
const int tabIndex = m_imageViewerTabWidget->indexOf(layerWidget);
|
||||||
if (tabIndex >= 0)
|
if (tabIndex >= 0)
|
||||||
{
|
{
|
||||||
|
if (m_recordFrameCounter)
|
||||||
|
{
|
||||||
|
m_recordFrameCounter->removeCounter(layerWidget);
|
||||||
|
}
|
||||||
m_imageViewerTabWidget->removeTab(tabIndex);
|
m_imageViewerTabWidget->removeTab(tabIndex);
|
||||||
}
|
}
|
||||||
layerWidget->deleteLater();
|
layerWidget->deleteLater();
|
||||||
@ -1451,6 +1461,11 @@ QWidget* HPPA::onCreateTab(QString tabName)
|
|||||||
|
|
||||||
m_imageViewerTabWidget->setCurrentIndex(m_imageViewerTabWidget->count() - 1);
|
m_imageViewerTabWidget->setCurrentIndex(m_imageViewerTabWidget->count() - 1);
|
||||||
|
|
||||||
|
if (m_recordFrameCounter)
|
||||||
|
{
|
||||||
|
m_recordFrameCounter->addCounter(tabTmp);
|
||||||
|
}
|
||||||
|
|
||||||
return tabTmp;
|
return tabTmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1464,6 +1479,12 @@ void HPPA::onTabWidgetCurrentChanged(int index)//代码新建一个tab,会调
|
|||||||
//记录当前
|
//记录当前
|
||||||
m_TabWidgetCurrentIndex = index;
|
m_TabWidgetCurrentIndex = index;
|
||||||
|
|
||||||
|
if (m_recordFrameCounter)
|
||||||
|
{
|
||||||
|
QWidget* currentWidget = m_imageViewerTabWidget->widget(index);
|
||||||
|
m_recordFrameCounter->switchTo(currentWidget);
|
||||||
|
}
|
||||||
|
|
||||||
//获取绘图控件
|
//获取绘图控件
|
||||||
QWidget* currentWidget = m_imageViewerTabWidget->widget(index);
|
QWidget* currentWidget = m_imageViewerTabWidget->widget(index);
|
||||||
QList<Mapcavas*> currentImageViewer = currentWidget->findChildren<Mapcavas*>();
|
QList<Mapcavas*> currentImageViewer = currentWidget->findChildren<Mapcavas*>();
|
||||||
@ -2065,6 +2086,11 @@ void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber, QSt
|
|||||||
QList<Mapcavas*> currentImageViewer = currentWidget->findChildren<Mapcavas*>();
|
QList<Mapcavas*> currentImageViewer = currentWidget->findChildren<Mapcavas*>();
|
||||||
currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFrameCounter());//界面中显示已经采集的帧数
|
currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFrameCounter());//界面中显示已经采集的帧数
|
||||||
|
|
||||||
|
if (m_recordFrameCounter)
|
||||||
|
{
|
||||||
|
m_recordFrameCounter->updateFrameCount(currentWidget, m_Imager->getFrameCounter());
|
||||||
|
}
|
||||||
|
|
||||||
//创建需要显示的图像--opencv版本
|
//创建需要显示的图像--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重构的
|
//cv::Mat rgbImage(*m_Imager->getRgbImage()->m_matRgbImage, cv::Range(0, m_Imager->getFrameCounter()), cv::Range::all());//2022.3.18重构的
|
||||||
|
|||||||
@ -71,6 +71,8 @@
|
|||||||
|
|
||||||
#include "HyperImagerControl.h"
|
#include "HyperImagerControl.h"
|
||||||
|
|
||||||
|
#include "recordFrameCounter.h"
|
||||||
|
|
||||||
#define PI 3.1415926
|
#define PI 3.1415926
|
||||||
|
|
||||||
QT_CHARTS_USE_NAMESPACE//QChartView 使用 需要加宏, 否则无法使用
|
QT_CHARTS_USE_NAMESPACE//QChartView 使用 需要加宏, 否则无法使用
|
||||||
@ -292,6 +294,8 @@ private:
|
|||||||
|
|
||||||
QWidget* m_focusTab=nullptr;
|
QWidget* m_focusTab=nullptr;
|
||||||
|
|
||||||
|
recordFrameCounter* m_recordFrameCounter = nullptr;
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber, QString filePath);
|
void onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber, QString filePath);
|
||||||
void PlotSpectral(int state);
|
void PlotSpectral(int state);
|
||||||
|
|||||||
@ -138,6 +138,7 @@
|
|||||||
<ClCompile Include="RasterDataProvider.cpp" />
|
<ClCompile Include="RasterDataProvider.cpp" />
|
||||||
<ClCompile Include="RasterLayer.cpp" />
|
<ClCompile Include="RasterLayer.cpp" />
|
||||||
<ClCompile Include="RasterRenderer.cpp" />
|
<ClCompile Include="RasterRenderer.cpp" />
|
||||||
|
<ClCompile Include="recordFrameCounter.cpp" />
|
||||||
<ClCompile Include="resononImager.cpp" />
|
<ClCompile Include="resononImager.cpp" />
|
||||||
<ClCompile Include="ResononNirImager.cpp" />
|
<ClCompile Include="ResononNirImager.cpp" />
|
||||||
<ClCompile Include="RgbCameraOperation.cpp" />
|
<ClCompile Include="RgbCameraOperation.cpp" />
|
||||||
@ -220,6 +221,7 @@
|
|||||||
<QtMoc Include="MapTools.h" />
|
<QtMoc Include="MapTools.h" />
|
||||||
<ClInclude Include="RasterDataProvider.h" />
|
<ClInclude Include="RasterDataProvider.h" />
|
||||||
<ClInclude Include="RasterRenderer.h" />
|
<ClInclude Include="RasterRenderer.h" />
|
||||||
|
<QtMoc Include="recordFrameCounter.h" />
|
||||||
<ClInclude Include="utility_tc.h" />
|
<ClInclude Include="utility_tc.h" />
|
||||||
<QtMoc Include="aboutWindow.h" />
|
<QtMoc Include="aboutWindow.h" />
|
||||||
<ClInclude Include="hppaConfigFile.h" />
|
<ClInclude Include="hppaConfigFile.h" />
|
||||||
|
|||||||
@ -196,6 +196,9 @@
|
|||||||
<ClCompile Include="HyperImagerControl.cpp">
|
<ClCompile Include="HyperImagerControl.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="recordFrameCounter.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<QtMoc Include="fileOperation.h">
|
<QtMoc Include="fileOperation.h">
|
||||||
@ -318,6 +321,9 @@
|
|||||||
<QtMoc Include="HyperImagerControl.h">
|
<QtMoc Include="HyperImagerControl.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
|
<QtMoc Include="recordFrameCounter.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</QtMoc>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="imageProcessor.h">
|
<ClInclude Include="imageProcessor.h">
|
||||||
|
|||||||
57
HPPA/recordFrameCounter.cpp
Normal file
57
HPPA/recordFrameCounter.cpp
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#include "stdafx.h"
|
||||||
|
#include "recordFrameCounter.h"
|
||||||
|
|
||||||
|
recordFrameCounter::recordFrameCounter(QWidget* parent)
|
||||||
|
: QWidget(parent)
|
||||||
|
{
|
||||||
|
m_stackedWidget = new QStackedWidget();
|
||||||
|
m_stackedWidget->setContentsMargins(0, 0, 0, 0);
|
||||||
|
|
||||||
|
QHBoxLayout* layout = new QHBoxLayout(this);
|
||||||
|
layout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
|
||||||
|
QLabel* titleLabel = new QLabel(QString::fromLocal8Bit("帧数: "));
|
||||||
|
titleLabel->setStyleSheet("color: white;");
|
||||||
|
layout->addWidget(titleLabel);
|
||||||
|
layout->addWidget(m_stackedWidget);
|
||||||
|
}
|
||||||
|
|
||||||
|
void recordFrameCounter::addCounter(QWidget* tabWidget)
|
||||||
|
{
|
||||||
|
QLabel* label = new QLabel("0");
|
||||||
|
label->setStyleSheet("color: white;");
|
||||||
|
label->setAlignment(Qt::AlignVCenter | Qt::AlignLeft);
|
||||||
|
m_labelMap.insert(tabWidget, label);
|
||||||
|
m_stackedWidget->addWidget(label);
|
||||||
|
m_stackedWidget->setCurrentWidget(label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void recordFrameCounter::removeCounter(QWidget* tabWidget)
|
||||||
|
{
|
||||||
|
auto it = m_labelMap.find(tabWidget);
|
||||||
|
if (it != m_labelMap.end())
|
||||||
|
{
|
||||||
|
QLabel* label = it.value();
|
||||||
|
m_stackedWidget->removeWidget(label);
|
||||||
|
delete label;
|
||||||
|
m_labelMap.erase(it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void recordFrameCounter::switchTo(QWidget* tabWidget)
|
||||||
|
{
|
||||||
|
auto it = m_labelMap.find(tabWidget);
|
||||||
|
if (it != m_labelMap.end())
|
||||||
|
{
|
||||||
|
m_stackedWidget->setCurrentWidget(it.value());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void recordFrameCounter::updateFrameCount(QWidget* tabWidget, int frameCount)
|
||||||
|
{
|
||||||
|
auto it = m_labelMap.find(tabWidget);
|
||||||
|
if (it != m_labelMap.end())
|
||||||
|
{
|
||||||
|
it.value()->setText(QString::number(frameCount));
|
||||||
|
}
|
||||||
|
}
|
||||||
24
HPPA/recordFrameCounter.h
Normal file
24
HPPA/recordFrameCounter.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QStackedWidget>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QMap>
|
||||||
|
|
||||||
|
class recordFrameCounter : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit recordFrameCounter(QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
void addCounter(QWidget* tabWidget);
|
||||||
|
void removeCounter(QWidget* tabWidget);
|
||||||
|
void switchTo(QWidget* tabWidget);
|
||||||
|
void updateFrameCount(QWidget* tabWidget, int frameCount);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QStackedWidget* m_stackedWidget = nullptr;
|
||||||
|
QMap<QWidget*, QLabel*> m_labelMap;
|
||||||
|
};
|
||||||
|
|
||||||
Reference in New Issue
Block a user