ConfigExpertDataWidget.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. #ifndef CONFIGEXPERTDATAWIDGET_H
  2. #define CONFIGEXPERTDATAWIDGET_H
  3. #include <QWidget>
  4. #include "SchemePlanManager.h"
  5. class QFUser;
  6. class UserConfig;
  7. class ToolButton;
  8. class PushButton;
  9. class QVBoxLayout;
  10. class QHBoxLayout;
  11. class QGridLayout;
  12. class QLabel;
  13. class QSplitter;
  14. class QPushButton;
  15. class QListWidget;
  16. class QSpinBox;
  17. /**
  18. * @brief The ConfigListItemWidget class
  19. * 自定义专家配置列表条目
  20. */
  21. class ConfigListItemWidget : public QWidget
  22. {
  23. Q_OBJECT
  24. public:
  25. explicit ConfigListItemWidget(QWidget *parent = nullptr);
  26. UserConfig *userConfig() const;
  27. void setUserConfig(UserConfig *config);
  28. int spinValue() const;
  29. signals:
  30. void sigImport(UserConfig *config);
  31. void sigRemove(UserConfig *config);
  32. private:
  33. void initWidget();
  34. void initLayouts();
  35. void connectSignalsAndSlots();
  36. private slots:
  37. void slotImport();
  38. void slotRemove();
  39. private:
  40. UserConfig *m_config = nullptr;
  41. QLabel *m_name = nullptr;
  42. QSpinBox *m_weight = nullptr;
  43. QPushButton *m_import = nullptr;
  44. QPushButton *m_remove = nullptr;
  45. QHBoxLayout *m_layout = nullptr;
  46. };
  47. /**
  48. * @brief The ExpertListItemWidget class
  49. * 自定义专家列表条目
  50. */
  51. class ExpertListItemWidget : public QWidget
  52. {
  53. Q_OBJECT
  54. public:
  55. explicit ExpertListItemWidget(QWidget *parent = nullptr);
  56. QFUser *user() const;
  57. void setUser(QFUser *user);
  58. void setIndex(int index);
  59. void setAdded(bool added);
  60. signals:
  61. void sigAddUser(QFUser *user);
  62. private:
  63. void initWidget();
  64. void initLayout();
  65. void connectSignalsAndSlots();
  66. private:
  67. void slotAdd();
  68. private:
  69. QFUser *m_user = nullptr;
  70. QLabel *m_index = nullptr;
  71. QLabel *m_name = nullptr;
  72. QPushButton *m_add = nullptr;
  73. QHBoxLayout *m_layout = nullptr;
  74. };
  75. /**
  76. * @brief The ConfigExpertDataWidget class
  77. * 专家配置和导入专家数据视图
  78. */
  79. class ConfigExpertDataWidget : public QWidget
  80. {
  81. Q_OBJECT
  82. public:
  83. explicit ConfigExpertDataWidget(QWidget *parent = nullptr);
  84. void initialize();
  85. void initLayout();
  86. void connectSignalsAndSlots();
  87. void setProcess(SchemePlanManager::SchemeProcessInfo process);
  88. void loadData();
  89. signals:
  90. protected:
  91. virtual void showEvent(QShowEvent *event) override;
  92. virtual void hideEvent(QHideEvent *event) override;
  93. private:
  94. void refreshAddedList();
  95. void refreshExpList();
  96. private slots:
  97. void slotSave();
  98. void slotRefresh();
  99. void slotAddUser(QFUser *user);
  100. void slotRemoveConfig(UserConfig *config);
  101. void slotImportData(UserConfig *config);
  102. private:
  103. SchemePlanManager::SchemeProcessInfo m_process;
  104. bool m_isProcessChanged = false;
  105. QVBoxLayout *m_vBoxLayout = nullptr;
  106. QLabel *m_titleLabel = nullptr;
  107. QSplitter *m_splitter = nullptr;
  108. QWidget *m_configWidget = nullptr;
  109. QVBoxLayout *m_configWidgetLayout = nullptr;
  110. QWidget *m_configListHeader = nullptr;
  111. QHBoxLayout *m_configListHeaderLayout = nullptr;
  112. QLabel *m_configListTitleLabel = nullptr;
  113. QLabel *m_configListTipsLabel = nullptr;
  114. QPushButton *m_saveButton = nullptr;
  115. QListWidget *m_configListWidget = nullptr;
  116. QWidget *m_expWidget = nullptr;
  117. QVBoxLayout *m_expWidgetLayout = nullptr;
  118. QWidget *m_expListHeader = nullptr;
  119. QHBoxLayout *m_expListHeaderLayout = nullptr;
  120. QLabel *m_expListTitleLabel = nullptr;
  121. QPushButton *m_refreshButton = nullptr;
  122. QListWidget *m_expListWidget = nullptr;
  123. QList<QFUser *> m_expertList;
  124. QList<UserConfig *> m_configList;
  125. };
  126. #endif // CONFIGEXPERTDATAWIDGET_H