EnergySpectrumAnalyer/src/ParticleCountPlotView/ParticleCountPlotView.h
2026-07-16 17:54:53 +08:00

69 lines
2.0 KiB
C++

#ifndef PARTICLECOUNTPLOTVIEW_H
#define PARTICLECOUNTPLOTVIEW_H
#include <QObject>
#include <QWidget>
#include <QDialog>
#include "MeasureAnalysisView.h"
#include "DataProcessWorkPool.h"
class QDialog;
class QMenu;
class CustomQwtPlot;
class QTableWidget;
class QTableWidgetItem;
class CustomQwtPlotXaxisSelector;
class BatchEnergyScaleDialog;
class FindPeaksResultDialog;
class ParticleCountPlotView : public MeasureAnalysisView
{
Q_OBJECT
public:
ParticleCountPlotView(QWidget *parent = nullptr);
virtual ~ParticleCountPlotView();
virtual void InitViewWorkspace(const QString& project_name) override final;
virtual void SetAnalyzeDataFilename(const QMap<QString, QVariant>& data_files_set);
void updateView(const QMap<QString, QVariant>& data_files_set);
private:
void setupMenu();
void setupPlot();
void setupPeakResultDlg();
void setupEnergyScaleDlg();
void loadDataFromFile(const QString &data_name, const QString& filename);
void loadPeaksResultToTable(QTableWidget* peaks_result_table);
void updatePlotPeakInfo(const QVariantMap& peak_infos);
void onManualPeakRangeSelected(double minX, double maxX);
QMap<QString, ChannelSelectionData> getSelectedRangeData(double minX, double maxX);
private slots:
void onAutoFindPeaksFinished(bool ok, const QString &project_name, const QVariant& data);
private slots:
void onActionCurveShowSetting();
void onActionFindPeaksResult();
void onActionAutoFindPeaks();
void onActionManualFindPeaks();
void onActionEnergyScale();
void onActionPlotConfigure();
signals:
void applyEnergyScale();
private:
QString _workspace;
CustomQwtPlot* _plot = nullptr;
QMenu* _menu = nullptr;
QDialog* _curve_show_setting_dlg = nullptr;
QMap<QString, QVariant> _data_files_set_ptr;
FindPeaksResultDialog* _find_peaks_result_dlg = nullptr;
CustomQwtPlotXaxisSelector* _data_selector = nullptr;
BatchEnergyScaleDialog* _batch_energy_scale_dlg = nullptr;
double _x_max = 0.0f;
double _y_max = 0.0f;
};
#endif // PARTICLECOUNTPLOTVIEW_H