EvalSchemeWidget.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #ifndef EVALSCHEMEWIDGET_H
  2. #define EVALSCHEMEWIDGET_H
  3. #include "EvalWidget.h"
  4. class CSchemeView;
  5. class PushButton;
  6. class RoundMenu;
  7. class QHBoxLayout;
  8. class QAction;
  9. /**
  10. * @brief The EvalSchemeWidget class
  11. * 评估方案
  12. */
  13. class EvalSchemeWidget : public EvalWidget
  14. {
  15. Q_OBJECT
  16. public:
  17. enum Scheme
  18. {
  19. Input = 0b1,
  20. Index = 0b1 << 1,
  21. Collect = 0b1 << 2,
  22. Process = 0b1 << 3,
  23. Output = 0b1 << 4,
  24. };
  25. Q_ENUM(Scheme)
  26. static QString nameOfScheme(Scheme s);
  27. enum Algorithm
  28. {
  29. Alg1 = Process | 0b1 << 11,
  30. Alg2 = Process | 0b1 << 12,
  31. Alg3 = Process | 0b1 << 13,
  32. Alg4 = Process | 0b1 << 14,
  33. Alg5 = Process | 0b1 << 15,
  34. };
  35. Q_ENUM(Algorithm)
  36. static QString nameOfAlgorithm(Algorithm a);
  37. explicit EvalSchemeWidget(ProjectInfo *proj, int type, QWidget *parent);
  38. void initWidgets();
  39. void refreshSchemeView();
  40. void testData();
  41. signals:
  42. private slots:
  43. void slotSelectScheme(Scheme sch, PushButton *btn);
  44. void slotSelectAlgorithm(Algorithm alg);
  45. void slotClearScheme();
  46. private:
  47. PushButton *m_clear = nullptr;
  48. RoundMenu *m_menu = nullptr;
  49. CSchemeView *m_schemeView = nullptr;
  50. QHBoxLayout *m_buttonLayout = nullptr;
  51. int m_scheme = 0;
  52. QList<Algorithm> m_algs;
  53. };
  54. #endif // EVALSCHEMEWIDGET_H