#include "Graph2D.h" #include "ElaMessageBar.h" #include "Graph2DSettings.h" #include "ElaTheme.h" #include "SelectDatatDialog.h" #include "DataChosenListDialog.h" #include "Curve2DPlotor.h" namespace pst { Graph2D::Graph2D(QWidget* parent) : QWidget(parent) { QHBoxLayout* layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setStretch(0, 1); layout->setStretch(1, 0); /// @brief 测试代码 QStringList _thetaComboList1{ "-180deg", "-90deg", "0deg", "90deg", "180deg" }; QStringList _thetaComboList2{ "-360deg", "-180deg", "0deg", "90deg", "180deg" }; QStringList _thetaComboList3{ "0deg", "-270deg", "-180deg", "-90deg", "0deg", "90deg", "180deg", "270deg" }; QStringList _thetaComboList4{ "360deg", "270deg", "180deg", "90deg", "0deg", "-90deg", "-180deg", "-270deg" }; QList>> m_FixedVariableValueList = { {"theta", _thetaComboList1 }, { "phi", _thetaComboList2 }, { "degree", _thetaComboList3 }, { "fre", _thetaComboList4 } }; //QList>> dataList{}; //auto data1 = qMakePair(QString("AAA"), QList{ 1, 2, 3, 4, 5 }); //auto data2 = qMakePair(QString("BBB"), QList{ 2, 3, 4, 5, 6 }); //auto data3 = qMakePair(QString("VVV"), QList{ 3, 4, 5, 6, 7}); //auto data4 = qMakePair(QString("CCC"), QList{ 4, 5, 6, 7, 8 }); //dataList << data1 << data2 << data3 << data4 << data1 << data2 << data3 << data4; ////顶级选择数据对话框 //m_selecetDataDialog = new SelectDatatDialog(); //m_selecetDataDialog->setFixedSize(400, 400); //m_selecetDataDialog->moveToCenter(); //m_selecetDataDialog->show(); //m_selecetDataDialog->setDialogTitle("方向性"); //m_selecetDataDialog->setDataList(dataList); //m_selecetDataDialog->updateUI(); //////次级选择数据对话框 //DataChosenListDialog* m_dataChosenListDialog = new DataChosenListDialog(this); //m_dataChosenListDialog->setFixedSize(400, 400); //m_dataChosenListDialog->moveToCenter(); //QList data{ "-180deg", "-90deg", "0deg", "90deg", "180deg" }; //m_dataChosenListDialog->setData(data); //m_dataChosenListDialog->show(); //m_dataChosenListDialog->updateUI(); //QList indexs{ 1, 2 }; //m_dataChosenListDialog->setSelctedIndexs(indexs); //_aboutPage->show(); m_customPlot = new Curve2DPlotor(this); m_settings = new Graph2DSettings(this); //先连接信号和槽,然后设置m_settings的数值,以使其直接作用到m_customPlot initConnections(); m_settings->setCurrentFixedValueIndex(2); m_settings->setFixedVariableValue(m_FixedVariableValueList); m_settings->setCategaryData({ "雷内","fe ","tianl" }); m_settings->updateUI(); /// @brief 测试代码结束 layout->addWidget(m_customPlot); layout->addWidget(m_settings); } Graph2D::~Graph2D() { if (m_customPlot) { delete m_customPlot; m_customPlot = nullptr; } } void Graph2D::initConnections() { connect(m_settings, &Graph2DSettings::signal_XAxisTitleNameChanged, this, [this](const QString& titleName) {m_customPlot->setXAxisTitleName(titleName); }); connect(m_settings, &Graph2DSettings::signal_XAxisTitleFontFamilyChanged, this, [this](const QString& family) {m_customPlot->setXAxisFontFamily(family); }); connect(m_settings, &Graph2DSettings::signal_XAxisTitleFontSizeChanged, this, [this](int size) {m_customPlot->setXAxisFontSize(size); }); connect(m_settings, &Graph2DSettings::signal_XAxisMinValueChanged, this, [this](double minValue) {m_customPlot->setXAxisRangeMin(minValue); }); connect(m_settings, &Graph2DSettings::signal_XAxisMaxValueChanged, this, [this](double maxValue) {m_customPlot->setXAxisRangeMax(maxValue); }); connect(m_settings, &Graph2DSettings::signal_XAxisStepValueChanged, this, [this](double step) {m_customPlot->setXAxisRangeStep(step); }); connect(m_settings, &Graph2DSettings::signal_YAxisTitleNameChanged, this, [this](const QString& titleName) {m_customPlot->setYAxisTitleName(titleName); }); connect(m_settings, &Graph2DSettings::signal_YAxisTitleFontFamilyChanged, this, [this](const QString& family) {m_customPlot->setYAxisFontFamily(family); }); connect(m_settings, &Graph2DSettings::signal_YAxisTitleFontSizeChanged, this, [this](int size) {m_customPlot->setYAxisFontSize(size); }); connect(m_settings, &Graph2DSettings::signal_YAxisMinValueChanged, this, [this](double minValue) {m_customPlot->setYAxisRangeMin(minValue); }); connect(m_settings, &Graph2DSettings::signal_YAxisMaxValueChanged, this, [this](double maxValue) {m_customPlot->setYAxisRangeMax(maxValue); }); connect(m_settings, &Graph2DSettings::signal_YAxisStepValueChanged, this, [this](double step) {m_customPlot->setYAxisRangeStep(step); }); } }