EnergySpectrumAnalyer/src/MeasureAnalysisView.h
2026-03-04 16:49:50 +08:00

59 lines
1.6 KiB
C++

#ifndef MEASUREANALYSISVIEW_H
#define MEASUREANALYSISVIEW_H
#include <QDataStream>
#include <QList>
#include <QMap>
#include <QVariantMap>
#include <QWidget>
enum class MeasureAnalysisViewType {
None,
DataTable,
CountSpectrum,
CoincidenceEnergySpectrum3D,
CountingRate,
EnergyPeakFit,
NuclideAnalysis,
ParticleInTime,
ParticleTimeDiff,
CoincidenceEventTime,
CoincidenceEnergySpectrum,
AntiCoincidenceSpectrum
};
class MeasureAnalysisView : public QWidget {
Q_OBJECT
public:
static MeasureAnalysisView* NewAnalyzeView(const QString& view_type_text);
static const QString& GetAnalyzeViewTypeText(MeasureAnalysisViewType type);
private:
static QMap<QString, MeasureAnalysisViewType> _s_analyze_view_type_list;
public:
explicit MeasureAnalysisView(QWidget* parent = nullptr);
MeasureAnalysisViewType GetAnalyzeViewType();
const QString& GetAnalyzeViewTypeText() const;
void SetViewName(const QString& name);
void SetViewDescription(const QString& description);
const QString& GetViewName() const;
const QString& GetViewDescription() const;
virtual void SetAnalyzeDataFilename(const QMap<QString, QVariant>& data_files_set) = 0;
protected:
void setAnalyzeViewType(MeasureAnalysisViewType type);
private:
MeasureAnalysisViewType _view_type;
QString _name;
QString _description;
public:
friend QDataStream& operator<<(QDataStream& out, const MeasureAnalysisView& view);
friend QDataStream& operator>>(QDataStream& in, MeasureAnalysisView& view);
};
#endif // MEASUREANALYSISVIEW_H