MatterElementConfigWidget.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. double leftValue;
  11. double rightValue;
  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. private:
  40. Ui::MatterElementConfigWidget *ui;
  41. QStandardItemModel *m_scaleDivisionmodel = nullptr;
  42. QList<QLineEdit *> m_levelEdits;
  43. QList<QStandardItemModel *> m_domainModels; // 配置域的表格集合
  44. MatterElementItemRangeDelegate *m_meRangeDelegate = nullptr;
  45. QList<MEConfigItem> m_allConfigItems;
  46. int m_domainLevel;
  47. CMind *m_mind = nullptr;
  48. };
  49. #endif // MATTERELEMENTCONFIGWIDGET_H