EvalSchemeWidget.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. signals:
  41. private slots:
  42. void slotSelectScheme(Scheme sch, PushButton *btn);
  43. void slotSelectAlgorithm(Algorithm alg);
  44. void slotClearScheme();
  45. private:
  46. PushButton *m_clear = nullptr;
  47. RoundMenu *m_menu = nullptr;
  48. CSchemeView *m_schemeView = nullptr;
  49. QHBoxLayout *m_buttonLayout = nullptr;
  50. int m_scheme = 0;
  51. QList<Algorithm> m_algs;
  52. };
  53. #endif // EVALSCHEMEWIDGET_H