From fdfd8611f4f1386873cf49287aa2c185a804b031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B5=B7?= Date: Wed, 4 Mar 2026 16:49:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=A7=86=E5=9B=BE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeasureAnalysisTree.cpp | 17 +++++++---- src/MeasureAnalysisTree.h | 4 ++- src/MeasureAnalysisView.cpp | 56 ++++++++++++++++++------------------- src/MeasureAnalysisView.h | 40 +++++++++++++------------- 4 files changed, 63 insertions(+), 54 deletions(-) diff --git a/src/MeasureAnalysisTree.cpp b/src/MeasureAnalysisTree.cpp index 425771a..eb40780 100644 --- a/src/MeasureAnalysisTree.cpp +++ b/src/MeasureAnalysisTree.cpp @@ -38,7 +38,7 @@ TreeWidget::TreeWidget(QWidget* parent) case TreeItemType::ParticleData: case TreeItemType::ParticleCountData: 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); MeasureAnalysisView* view = item->GetAnalyzeView(true); if (view) { @@ -118,7 +118,7 @@ void TreeWidget::SetConnectActions(MeasureAnalysisActions* const actions_analyze }); connect(actions_analyze, &MeasureAnalysisActions::addMeasureAnalysisProject, [this]() { - + emit newMeasureAnalysisProject(); }); connect(actions_analyze, &MeasureAnalysisActions::rmMeasureAnalysisProject, [this]() { removeAnalyzeItem(); @@ -127,16 +127,21 @@ void TreeWidget::SetConnectActions(MeasureAnalysisActions* const actions_analyze }); 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]() { removeAnalyzeItem(); }); connect(actions_analyze, &MeasureAnalysisActions::modifyAnalyzeView, [this]() { - TreeItem* item = dynamic_cast(this->currentItem()); - if (item && (TreeItemType::AnalyzeView == item->GetType())) { - } }); } diff --git a/src/MeasureAnalysisTree.h b/src/MeasureAnalysisTree.h index a75739a..3af035b 100644 --- a/src/MeasureAnalysisTree.h +++ b/src/MeasureAnalysisTree.h @@ -27,7 +27,6 @@ public: private: TreeMeasureAnalysisProjectItem* getProjectItem(TreeItem* item); - private slots: // void onFinishedSeparateEveryChannelParticleData(const QString& project_name); void onFinishedParticleSortData(const QString& project_name); @@ -37,6 +36,9 @@ signals: void currentItemViewWidget(MeasureAnalysisView* view); void removeItemViewFromStack(MeasureAnalysisView* view); + void newMeasureAnalysisProject(); + void newMeasureAnalysisView(const QString& project_name, const QString& view_type); + private: void setCurrentItemHighlight(); void removeAnalyzeItem(); diff --git a/src/MeasureAnalysisView.cpp b/src/MeasureAnalysisView.cpp index ee08f01..f4799c0 100644 --- a/src/MeasureAnalysisView.cpp +++ b/src/MeasureAnalysisView.cpp @@ -2,68 +2,68 @@ #include #include "MeasureAnalysisDataTableView.h" -QMap MeasureAnalysisView::_s_analyze_view_type_list { +QMap MeasureAnalysisView::_s_analyze_view_type_list { { QStringLiteral(u"数据表视图"), - MeasureAnalysisView::ViewType::DataTable }, + MeasureAnalysisViewType::DataTable }, { QStringLiteral(u"计数谱视图"), - MeasureAnalysisView::ViewType::CountSpectrum }, + MeasureAnalysisViewType::CountSpectrum }, { QStringLiteral(u"符合能谱谱三维分析视图"), - MeasureAnalysisView::ViewType::CoincidenceEnergySpectrum3D }, + MeasureAnalysisViewType::CoincidenceEnergySpectrum3D }, { QStringLiteral(u"计数率分析视图"), - MeasureAnalysisView::ViewType::CountingRate }, + MeasureAnalysisViewType::CountingRate }, { QStringLiteral(u"峰拟合分析视图"), - MeasureAnalysisView::ViewType::EnergyPeakFit }, + MeasureAnalysisViewType::EnergyPeakFit }, { QStringLiteral(u"核素分析视图"), - MeasureAnalysisView::ViewType::NuclideAnalysis }, + MeasureAnalysisViewType::NuclideAnalysis }, { QStringLiteral(u"粒子入射时间分析视图"), - MeasureAnalysisView::ViewType::ParticleInTime }, + MeasureAnalysisViewType::ParticleInTime }, { QStringLiteral(u"粒子时间差分析视图"), - MeasureAnalysisView::ViewType::ParticleTimeDiff }, + MeasureAnalysisViewType::ParticleTimeDiff }, { QStringLiteral(u"符合事件时间分析视图"), - MeasureAnalysisView::ViewType::CoincidenceEventTime }, + MeasureAnalysisViewType::CoincidenceEventTime }, { QStringLiteral(u"符合能谱分析视图"), - MeasureAnalysisView::ViewType::CoincidenceEnergySpectrum }, + MeasureAnalysisViewType::CoincidenceEnergySpectrum }, { QStringLiteral(u"反符合能谱分析视图"), - MeasureAnalysisView::ViewType::AntiCoincidenceSpectrum } + MeasureAnalysisViewType::AntiCoincidenceSpectrum } }; MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(const QString& view_type_text) { MeasureAnalysisView* new_view = nullptr; 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) { - case ViewType::DataTable: { + case MeasureAnalysisViewType::DataTable: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::CountSpectrum: { + case MeasureAnalysisViewType::CountSpectrum: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::CoincidenceEnergySpectrum3D: { + case MeasureAnalysisViewType::CoincidenceEnergySpectrum3D: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::CountingRate: { + case MeasureAnalysisViewType::CountingRate: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::EnergyPeakFit: { + case MeasureAnalysisViewType::EnergyPeakFit: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::NuclideAnalysis: { + case MeasureAnalysisViewType::NuclideAnalysis: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::ParticleInTime: { + case MeasureAnalysisViewType::ParticleInTime: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::ParticleTimeDiff: { + case MeasureAnalysisViewType::ParticleTimeDiff: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::CoincidenceEventTime: { + case MeasureAnalysisViewType::CoincidenceEventTime: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::CoincidenceEnergySpectrum: { + case MeasureAnalysisViewType::CoincidenceEnergySpectrum: { new_view = new MeasureAnalysisDataTableView; } break; - case ViewType::AntiCoincidenceSpectrum: { + case MeasureAnalysisViewType::AntiCoincidenceSpectrum: { new_view = new MeasureAnalysisDataTableView; } break; default: @@ -73,7 +73,7 @@ MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(const QString& view_typ return new_view; } -const QString &MeasureAnalysisView::GetAnalyzeViewTypeText(ViewType type) +const QString &MeasureAnalysisView::GetAnalyzeViewTypeText(MeasureAnalysisViewType type) { QString view_type_text; auto it_type = MeasureAnalysisView::_s_analyze_view_type_list.constBegin(); @@ -90,10 +90,10 @@ const QString &MeasureAnalysisView::GetAnalyzeViewTypeText(ViewType type) MeasureAnalysisView::MeasureAnalysisView(QWidget* parent) : QWidget { parent } { - _view_type = ViewType::None; + _view_type = MeasureAnalysisViewType::None; } -MeasureAnalysisView::ViewType MeasureAnalysisView::GetAnalyzeViewType() +MeasureAnalysisViewType MeasureAnalysisView::GetAnalyzeViewType() { return _view_type; } @@ -131,7 +131,7 @@ const QString &MeasureAnalysisView::GetViewDescription() const return this->_description; } -void MeasureAnalysisView::setAnalyzeViewType(ViewType type) +void MeasureAnalysisView::setAnalyzeViewType(MeasureAnalysisViewType type) { _view_type = type; } diff --git a/src/MeasureAnalysisView.h b/src/MeasureAnalysisView.h index 9d0fd19..46f9742 100644 --- a/src/MeasureAnalysisView.h +++ b/src/MeasureAnalysisView.h @@ -7,32 +7,34 @@ #include #include +enum class MeasureAnalysisViewType { + None, + DataTable, + CountSpectrum, + CoincidenceEnergySpectrum3D, + CountingRate, + EnergyPeakFit, + NuclideAnalysis, + ParticleInTime, + ParticleTimeDiff, + CoincidenceEventTime, + CoincidenceEnergySpectrum, + AntiCoincidenceSpectrum +}; + class MeasureAnalysisView : public QWidget { Q_OBJECT public: - enum class ViewType { - None, - DataTable, - CountSpectrum, - CoincidenceEnergySpectrum3D, - CountingRate, - EnergyPeakFit, - NuclideAnalysis, - ParticleInTime, - ParticleTimeDiff, - CoincidenceEventTime, - CoincidenceEnergySpectrum, - AntiCoincidenceSpectrum - }; + static MeasureAnalysisView* NewAnalyzeView(const QString& view_type_text); - static const QString& GetAnalyzeViewTypeText(ViewType type); + static const QString& GetAnalyzeViewTypeText(MeasureAnalysisViewType type); private: - static QMap _s_analyze_view_type_list; + static QMap _s_analyze_view_type_list; public: explicit MeasureAnalysisView(QWidget* parent = nullptr); - ViewType GetAnalyzeViewType(); + MeasureAnalysisViewType GetAnalyzeViewType(); const QString& GetAnalyzeViewTypeText() const; void SetViewName(const QString& name); void SetViewDescription(const QString& description); @@ -41,10 +43,10 @@ public: virtual void SetAnalyzeDataFilename(const QMap& data_files_set) = 0; protected: - void setAnalyzeViewType(ViewType type); + void setAnalyzeViewType(MeasureAnalysisViewType type); private: - ViewType _view_type; + MeasureAnalysisViewType _view_type; QString _name; QString _description;