调整视图类型定义

This commit is contained in:
徐海 2026-03-04 16:49:50 +08:00
parent 91a5e30917
commit fdfd8611f4
4 changed files with 63 additions and 54 deletions

View File

@ -38,7 +38,7 @@ TreeWidget::TreeWidget(QWidget* parent)
case TreeItemType::ParticleData: case TreeItemType::ParticleData:
case TreeItemType::ParticleCountData: case TreeItemType::ParticleCountData:
case TreeItemType::ConformParticleData: { case TreeItemType::ConformParticleData: {
const QString view_type_text = MeasureAnalysisView::GetAnalyzeViewTypeText(MeasureAnalysisView::ViewType::DataTable); const QString view_type_text = MeasureAnalysisView::GetAnalyzeViewTypeText(MeasureAnalysisViewType::DataTable);
item->NewAnalyzeView(item->GetName(), item->GetDescription(), view_type_text); item->NewAnalyzeView(item->GetName(), item->GetDescription(), view_type_text);
MeasureAnalysisView* view = item->GetAnalyzeView(true); MeasureAnalysisView* view = item->GetAnalyzeView(true);
if (view) { if (view) {
@ -118,7 +118,7 @@ void TreeWidget::SetConnectActions(MeasureAnalysisActions* const actions_analyze
}); });
connect(actions_analyze, &MeasureAnalysisActions::addMeasureAnalysisProject, [this]() { connect(actions_analyze, &MeasureAnalysisActions::addMeasureAnalysisProject, [this]() {
emit newMeasureAnalysisProject();
}); });
connect(actions_analyze, &MeasureAnalysisActions::rmMeasureAnalysisProject, [this]() { connect(actions_analyze, &MeasureAnalysisActions::rmMeasureAnalysisProject, [this]() {
removeAnalyzeItem(); removeAnalyzeItem();
@ -127,16 +127,21 @@ void TreeWidget::SetConnectActions(MeasureAnalysisActions* const actions_analyze
}); });
connect(actions_analyze, &MeasureAnalysisActions::addAnalyzeView, [this]() { connect(actions_analyze, &MeasureAnalysisActions::addAnalyzeView, [this]() {
QString project_name = QString();
MeasureAnalysisViewType view_type = MeasureAnalysisViewType::None;
QTreeWidgetItem* current_item = this->currentItem();
if (!current_item) {
return;
}
TreeItem*
emit newMeasureAnalysisView(MeasureAnalysisView::GetAnalyzeViewTypeText(view_type));
}); });
connect(actions_analyze, &MeasureAnalysisActions::rmAnalyzeView, [this]() { connect(actions_analyze, &MeasureAnalysisActions::rmAnalyzeView, [this]() {
removeAnalyzeItem(); removeAnalyzeItem();
}); });
connect(actions_analyze, &MeasureAnalysisActions::modifyAnalyzeView, [this]() { connect(actions_analyze, &MeasureAnalysisActions::modifyAnalyzeView, [this]() {
TreeItem* item = dynamic_cast<TreeItem*>(this->currentItem());
if (item && (TreeItemType::AnalyzeView == item->GetType())) {
}
}); });
} }

View File

@ -27,7 +27,6 @@ public:
private: private:
TreeMeasureAnalysisProjectItem* getProjectItem(TreeItem* item); TreeMeasureAnalysisProjectItem* getProjectItem(TreeItem* item);
private slots: private slots:
// void onFinishedSeparateEveryChannelParticleData(const QString& project_name); // void onFinishedSeparateEveryChannelParticleData(const QString& project_name);
void onFinishedParticleSortData(const QString& project_name); void onFinishedParticleSortData(const QString& project_name);
@ -37,6 +36,9 @@ signals:
void currentItemViewWidget(MeasureAnalysisView* view); void currentItemViewWidget(MeasureAnalysisView* view);
void removeItemViewFromStack(MeasureAnalysisView* view); void removeItemViewFromStack(MeasureAnalysisView* view);
void newMeasureAnalysisProject();
void newMeasureAnalysisView(const QString& project_name, const QString& view_type);
private: private:
void setCurrentItemHighlight(); void setCurrentItemHighlight();
void removeAnalyzeItem(); void removeAnalyzeItem();

View File

@ -2,68 +2,68 @@
#include <QMap> #include <QMap>
#include "MeasureAnalysisDataTableView.h" #include "MeasureAnalysisDataTableView.h"
QMap<QString, MeasureAnalysisView::ViewType> MeasureAnalysisView::_s_analyze_view_type_list { QMap<QString, MeasureAnalysisViewType> MeasureAnalysisView::_s_analyze_view_type_list {
{ QStringLiteral(u"数据表视图"), { QStringLiteral(u"数据表视图"),
MeasureAnalysisView::ViewType::DataTable }, MeasureAnalysisViewType::DataTable },
{ QStringLiteral(u"计数谱视图"), { QStringLiteral(u"计数谱视图"),
MeasureAnalysisView::ViewType::CountSpectrum }, MeasureAnalysisViewType::CountSpectrum },
{ QStringLiteral(u"符合能谱谱三维分析视图"), { QStringLiteral(u"符合能谱谱三维分析视图"),
MeasureAnalysisView::ViewType::CoincidenceEnergySpectrum3D }, MeasureAnalysisViewType::CoincidenceEnergySpectrum3D },
{ QStringLiteral(u"计数率分析视图"), { QStringLiteral(u"计数率分析视图"),
MeasureAnalysisView::ViewType::CountingRate }, MeasureAnalysisViewType::CountingRate },
{ QStringLiteral(u"峰拟合分析视图"), { QStringLiteral(u"峰拟合分析视图"),
MeasureAnalysisView::ViewType::EnergyPeakFit }, MeasureAnalysisViewType::EnergyPeakFit },
{ QStringLiteral(u"核素分析视图"), { QStringLiteral(u"核素分析视图"),
MeasureAnalysisView::ViewType::NuclideAnalysis }, MeasureAnalysisViewType::NuclideAnalysis },
{ QStringLiteral(u"粒子入射时间分析视图"), { QStringLiteral(u"粒子入射时间分析视图"),
MeasureAnalysisView::ViewType::ParticleInTime }, MeasureAnalysisViewType::ParticleInTime },
{ QStringLiteral(u"粒子时间差分析视图"), { QStringLiteral(u"粒子时间差分析视图"),
MeasureAnalysisView::ViewType::ParticleTimeDiff }, MeasureAnalysisViewType::ParticleTimeDiff },
{ QStringLiteral(u"符合事件时间分析视图"), { QStringLiteral(u"符合事件时间分析视图"),
MeasureAnalysisView::ViewType::CoincidenceEventTime }, MeasureAnalysisViewType::CoincidenceEventTime },
{ QStringLiteral(u"符合能谱分析视图"), { QStringLiteral(u"符合能谱分析视图"),
MeasureAnalysisView::ViewType::CoincidenceEnergySpectrum }, MeasureAnalysisViewType::CoincidenceEnergySpectrum },
{ QStringLiteral(u"反符合能谱分析视图"), { QStringLiteral(u"反符合能谱分析视图"),
MeasureAnalysisView::ViewType::AntiCoincidenceSpectrum } MeasureAnalysisViewType::AntiCoincidenceSpectrum }
}; };
MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(const QString& view_type_text) MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(const QString& view_type_text)
{ {
MeasureAnalysisView* new_view = nullptr; MeasureAnalysisView* new_view = nullptr;
if (_s_analyze_view_type_list.contains(view_type_text)) { if (_s_analyze_view_type_list.contains(view_type_text)) {
ViewType view_type = _s_analyze_view_type_list[view_type_text]; MeasureAnalysisViewType view_type = _s_analyze_view_type_list[view_type_text];
switch (view_type) { switch (view_type) {
case ViewType::DataTable: { case MeasureAnalysisViewType::DataTable: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::CountSpectrum: { case MeasureAnalysisViewType::CountSpectrum: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::CoincidenceEnergySpectrum3D: { case MeasureAnalysisViewType::CoincidenceEnergySpectrum3D: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::CountingRate: { case MeasureAnalysisViewType::CountingRate: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::EnergyPeakFit: { case MeasureAnalysisViewType::EnergyPeakFit: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::NuclideAnalysis: { case MeasureAnalysisViewType::NuclideAnalysis: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::ParticleInTime: { case MeasureAnalysisViewType::ParticleInTime: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::ParticleTimeDiff: { case MeasureAnalysisViewType::ParticleTimeDiff: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::CoincidenceEventTime: { case MeasureAnalysisViewType::CoincidenceEventTime: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::CoincidenceEnergySpectrum: { case MeasureAnalysisViewType::CoincidenceEnergySpectrum: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
case ViewType::AntiCoincidenceSpectrum: { case MeasureAnalysisViewType::AntiCoincidenceSpectrum: {
new_view = new MeasureAnalysisDataTableView; new_view = new MeasureAnalysisDataTableView;
} break; } break;
default: default:
@ -73,7 +73,7 @@ MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(const QString& view_typ
return new_view; return new_view;
} }
const QString &MeasureAnalysisView::GetAnalyzeViewTypeText(ViewType type) const QString &MeasureAnalysisView::GetAnalyzeViewTypeText(MeasureAnalysisViewType type)
{ {
QString view_type_text; QString view_type_text;
auto it_type = MeasureAnalysisView::_s_analyze_view_type_list.constBegin(); auto it_type = MeasureAnalysisView::_s_analyze_view_type_list.constBegin();
@ -90,10 +90,10 @@ const QString &MeasureAnalysisView::GetAnalyzeViewTypeText(ViewType type)
MeasureAnalysisView::MeasureAnalysisView(QWidget* parent) MeasureAnalysisView::MeasureAnalysisView(QWidget* parent)
: QWidget { parent } : QWidget { parent }
{ {
_view_type = ViewType::None; _view_type = MeasureAnalysisViewType::None;
} }
MeasureAnalysisView::ViewType MeasureAnalysisView::GetAnalyzeViewType() MeasureAnalysisViewType MeasureAnalysisView::GetAnalyzeViewType()
{ {
return _view_type; return _view_type;
} }
@ -131,7 +131,7 @@ const QString &MeasureAnalysisView::GetViewDescription() const
return this->_description; return this->_description;
} }
void MeasureAnalysisView::setAnalyzeViewType(ViewType type) void MeasureAnalysisView::setAnalyzeViewType(MeasureAnalysisViewType type)
{ {
_view_type = type; _view_type = type;
} }

View File

@ -7,10 +7,7 @@
#include <QVariantMap> #include <QVariantMap>
#include <QWidget> #include <QWidget>
class MeasureAnalysisView : public QWidget { enum class MeasureAnalysisViewType {
Q_OBJECT
public:
enum class ViewType {
None, None,
DataTable, DataTable,
CountSpectrum, CountSpectrum,
@ -23,16 +20,21 @@ public:
CoincidenceEventTime, CoincidenceEventTime,
CoincidenceEnergySpectrum, CoincidenceEnergySpectrum,
AntiCoincidenceSpectrum AntiCoincidenceSpectrum
}; };
class MeasureAnalysisView : public QWidget {
Q_OBJECT
public:
static MeasureAnalysisView* NewAnalyzeView(const QString& view_type_text); static MeasureAnalysisView* NewAnalyzeView(const QString& view_type_text);
static const QString& GetAnalyzeViewTypeText(ViewType type); static const QString& GetAnalyzeViewTypeText(MeasureAnalysisViewType type);
private: private:
static QMap<QString, ViewType> _s_analyze_view_type_list; static QMap<QString, MeasureAnalysisViewType> _s_analyze_view_type_list;
public: public:
explicit MeasureAnalysisView(QWidget* parent = nullptr); explicit MeasureAnalysisView(QWidget* parent = nullptr);
ViewType GetAnalyzeViewType(); MeasureAnalysisViewType GetAnalyzeViewType();
const QString& GetAnalyzeViewTypeText() const; const QString& GetAnalyzeViewTypeText() const;
void SetViewName(const QString& name); void SetViewName(const QString& name);
void SetViewDescription(const QString& description); void SetViewDescription(const QString& description);
@ -41,10 +43,10 @@ public:
virtual void SetAnalyzeDataFilename(const QMap<QString, QVariant>& data_files_set) = 0; virtual void SetAnalyzeDataFilename(const QMap<QString, QVariant>& data_files_set) = 0;
protected: protected:
void setAnalyzeViewType(ViewType type); void setAnalyzeViewType(MeasureAnalysisViewType type);
private: private:
ViewType _view_type; MeasureAnalysisViewType _view_type;
QString _name; QString _name;
QString _description; QString _description;