DoseCompare/src/dvh/DvhComparePage.h

64 lines
1.4 KiB
C++

#pragma once
#include "dvhTypes.h"
#include "itkStlCompat.h"
#include <QWidget>
#include <QString>
#include <QVector>
#include <vector>
#include <itkImage.h>
class QLineEdit;
class QListWidget;
class QTableWidget;
class QTextEdit;
class QProgressBar;
class QCheckBox;
class QPushButton;
class DvhPlotWidget;
class DvhComparePage : public QWidget {
Q_OBJECT
public:
explicit DvhComparePage(QWidget* parent = nullptr);
~DvhComparePage() override;
private slots:
void onBrowseImage();
void onBrowseRts();
void onAddDose();
void onRemoveDose();
void onCalculate();
void onSelectAllRoi();
void onClearAllRoi();
void onRoiVisibilityChanged();
private:
void buildUi();
void freeResults();
void rebuildRoiList();
void refreshPlot();
QString defaultOpenDir() const;
void rememberOpenPath(const QString& path);
QString resolveAlgoDllPath() const;
void appendLog(const QString& msg);
QLineEdit* m_imgEdit = nullptr;
QLineEdit* m_rtsEdit = nullptr;
QTableWidget* m_doseTable = nullptr;
QListWidget* m_roiList = nullptr;
QTextEdit* m_log = nullptr;
QProgressBar* m_progress = nullptr;
DvhPlotWidget* m_plot = nullptr;
QPushButton* m_calcBtn = nullptr;
QVector<QCheckBox*> m_roiChecks;
int m_doseNum = 0;
StrucSet* m_strucSet = nullptr;
std::vector<itk::Image<float, 3>::Pointer> m_keptDoses;
std::vector<itk::Image<unsigned char, 3>::Pointer> m_keptMasks;
};