#ifndef PST_GRAPH2DSETTINGS_H #define PST_GRAPH2DSETTINGS_H #include #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& curveList); void addCurveToList(QString curveName); void clearCurveList(); /// 设置固定值和变量值列表, 名字和数字;选择固定值,剩下的就是变量值 void setFixedVariableValue(const QList>>& fixedValueList); void setCurrentFixedValueIndex(int index); int getCurrentVariableValueIndex() const; void updateUI(); void setCategaryData(const QList& categaryList); QList 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>> m_FixedVariableValueList; //所有数据key QVBoxLayout* _page1Layout; QList> m_currentFixedValueWidgets; //当前固定值区域存储的所有控件 ElaComboBox* m_categryValue; //类别下拉框 QList 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