MatterElementConfigWidget.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef MATTERELEMENTCONFIGWIDGET_H
  2. #define MATTERELEMENTCONFIGWIDGET_H
  3. #include <QLineEdit>
  4. #include <QStandardItemModel>
  5. #include <QWidget>
  6. struct MEDomain
  7. {
  8. QString name;
  9. double leftValue;
  10. double rightValue;
  11. };
  12. struct MEConfigItem
  13. {
  14. QString parentName;
  15. QVector<MEDomain> childs;
  16. };
  17. class MatterElementItemRangeDelegate;
  18. namespace Ui {
  19. class MatterElementConfigWidget;
  20. }
  21. class MatterElementConfigWidget : public QWidget
  22. {
  23. Q_OBJECT
  24. public:
  25. explicit MatterElementConfigWidget(const QList<MEConfigItem> &configItems, int domainLevel,
  26. 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 initDomainTable(); // 经典域、节域配置
  35. private slots:
  36. void onLevelSaveBtnClick();
  37. void onScaleValueUpdate();
  38. private:
  39. Ui::MatterElementConfigWidget *ui;
  40. QStandardItemModel *m_scaleDivisionmodel = nullptr;
  41. QList<QLineEdit *> m_levelEdits;
  42. QList<QStandardItemModel *> m_domainModels; // 配置域的表格集合
  43. MatterElementItemRangeDelegate *m_meRangeDelegate = nullptr;
  44. QList<MEConfigItem> m_allConfigItems;
  45. int m_domainLevel;
  46. };
  47. #endif // MATTERELEMENTCONFIGWIDGET_H