MatterElementConfigWidget.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. void onTableItemChanged(QStandardItem *item);
  42. private:
  43. Ui::MatterElementConfigWidget *ui;
  44. QStandardItemModel *m_scaleDivisionmodel = nullptr;
  45. QList<QLineEdit *> m_levelEdits;
  46. QList<QStandardItemModel *> m_domainModels; // 配置域的表格集合
  47. MatterElementItemRangeDelegate *m_meRangeDelegate = nullptr;
  48. QList<MEConfigItem> m_allConfigItems;
  49. int m_domainLevel;
  50. CMind *m_mind = nullptr;
  51. };
  52. #endif // MATTERELEMENTCONFIGWIDGET_H