comac_desk_app/PostProcessing/Graph2DSettings.h

125 lines
4.3 KiB
C++

#ifndef PST_GRAPH2DSETTINGS_H
#define PST_GRAPH2DSETTINGS_H
#include <QWidget>
#include "T_BasePage.h"
#include "Def.h"
#include "PostEnumType.h"
//#include "QVBoxLayout.
class ElaTabWidget;
class ElaListView;
class ElaComboBox;
class QGridLayout;
class ElaLineEdit;
class ElaSpinBox;
class ElaDoubleSpinBox;
//class QVBoxLayout;
namespace pst
{
/// @brief 二维图形的设置UI
class Graph2DSettings : public T_BasePage
{
Q_OBJECT
public:
explicit Graph2DSettings(QWidget* parent = nullptr, Cure2DType type = Cure2DType::None);
~Graph2DSettings();
public:
/// 选择曲线列表
void setCurveList(const QList<QString>& curveList);
void addCurveToList(QString curveName);
void clearCurveList();
/// 设置固定值和变量值列表, 名字和数字;选择固定值,剩下的就是变量值
void setFixedVariableValue(const QList<QPair<QString, QList<QString>>>& fixedValueList);
void setCurrentFixedValueIndex(int index);
int getCurrentVariableValueIndex() const;
void updateUI();
void setCategaryData(const QList<QString>& categaryList);
QList<QString> getCategaryData() const;
private:
QString getFontFamilyString(const QString& font);
void addTopTabPivotUI();
void addCurveListUI();
void addVariableAxistUI();
void setFixedValue();
void setVariableValue();
void addFiexedValueToUI();
void addCategaryToUI();
void setCategoryData();
//page2
void addXAxisSettingUI();
void addYAxisSettingUI();
signals:
void signal_displayDataChanged(); //更新选择的曲线数据
void signal_axisPropertyChanged(); //更新坐标轴属性
void signal_XAxisTitleNameChanged(const QString& titleName);
void signal_XAxisTitleFontFamilyChanged(const QString& fontFamily);
void signal_XAxisTitleFontSizeChanged(int fontSize);
void signal_XAxisMinValueChanged(double minValue);
void signal_XAxisMaxValueChanged(double maxValue);
void signal_XAxisStepValueChanged(double step);
void signal_YAxisTitleNameChanged(const QString& titleName);
void signal_YAxisTitleFontFamilyChanged(const QString& fontFamily);
void signal_YAxisTitleFontSizeChanged(int fontSize);
void signal_YAxisMinValueChanged(double minValue);
void signal_YAxisMaxValueChanged(double maxValue);
void signal_YAxisStepValueChanged(double step);
public slots:
void slot_variableAxisChanged(int index);
private:
/// @brief 选项卡视图组件
ElaTabWidget* m_tabWidget{ nullptr };
/// @brief 已经添加过的曲线数目
int m_curveCount{ 0 };
private:
/// =============UI组件=============
/// 第一页内容
QWidget* m_page1CentralWidget;
QWidget* m_page2CentralWidget;
ElaListView* m_curveNameListView; //曲线列表视图
//ElaListView* m_variableValueListView; //变量值列表视图
ElaComboBox* m_variableAxisValue; //变量轴的下拉框
QGridLayout* _fixedValueLayoutH; //固定值控件布局
int _titleFontSize;
int _contentWidth;
int m_variableValueIndex; //当前的变量轴值index
QList<QPair<QString, QList<QString>>> m_FixedVariableValueList; //所有数据key
QVBoxLayout* _page1Layout;
QList<QPair<QWidget*, QWidget*>> m_currentFixedValueWidgets; //当前固定值区域存储的所有控件
ElaComboBox* m_categryValue; //类别下拉框
QList<QString> m_categoryValueList; //分类value
QGridLayout* _page2Layout;
int page2RowCount;
ElaLineEdit* _titleHEditX;
ElaComboBox* _fontFamilyComboBoxX;
ElaSpinBox* _fontSizeInputX;
ElaDoubleSpinBox* _minInputX;
ElaDoubleSpinBox* _maxInputX;
ElaDoubleSpinBox* _setpInputX;
ElaLineEdit* _titleHEditY;
ElaComboBox* _fontFamilyComboBoxY;
ElaSpinBox* _fontSizeInputY;
ElaDoubleSpinBox* _minInputY;
ElaDoubleSpinBox* _maxInputY;
ElaDoubleSpinBox* _setpInputY;
};
}
#endif // !PST_GRAPH2DSETTINGS_H