MatterElementConfigWidget.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef MATTERELEMENTCONFIGWIDGET_H
  2. #define MATTERELEMENTCONFIGWIDGET_H
  3. #include <QLineEdit>
  4. #include <QStandardItemModel>
  5. #include <QWidget>
  6. class CMind;
  7. struct MEDomain
  8. {
  9. QString name;
  10. QVector<double> leftValues; // 与阈值相关 size == m_domainLevel+1
  11. QVector<double> rightValues; // 与阈值相关 size == m_domainLevel+1
  12. };
  13. struct MEConfigItem
  14. {
  15. QString parentName;
  16. QVector<MEDomain> childs;
  17. };
  18. class MatterElementItemRangeDelegate;
  19. namespace Ui {
  20. class MatterElementConfigWidget;
  21. }
  22. class MatterElementConfigWidget : public QWidget
  23. {
  24. Q_OBJECT
  25. public:
  26. explicit MatterElementConfigWidget(CMind *mind, int domainLevel, QWidget *parent = nullptr);
  27. ~MatterElementConfigWidget();
  28. QList<MEConfigItem> getAllConfigItems() const;
  29. QStringList getDomainLevels() const;
  30. QVector<QVector<double>> getScaleValues() const;
  31. private:
  32. void initScaleDivisionTable(); // 标度划分表
  33. void initDomainLevelLayout();
  34. void initConfigItems();
  35. void initDomainTable(); // 经典域、节域配置
  36. private slots:
  37. void onLevelSaveBtnClick();
  38. void onScaleValueUpdate();
  39. void onClearBtnClick();
  40. void onSaveBtnClick();
  41. private:
  42. Ui::MatterElementConfigWidget *ui;
  43. QStandardItemModel *m_scaleDivisionmodel = nullptr;
  44. QList<QLineEdit *> m_levelEdits;
  45. QList<QStandardItemModel *> m_domainModels; // 配置域的表格集合
  46. MatterElementItemRangeDelegate *m_meRangeDelegate = nullptr;
  47. QList<MEConfigItem> m_allConfigItems;
  48. int m_domainLevel;
  49. CMind *m_mind = nullptr;
  50. };
  51. #endif // MATTERELEMENTCONFIGWIDGET_H