MaterialBox.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef MATERIALBOX_H
  2. #define MATERIALBOX_H
  3. #include <QApplication>
  4. #include <QWidget>
  5. #include <QPainter>
  6. #include <QMouseEvent>
  7. #include <vector>
  8. #include <QString>
  9. #include <QDebug>
  10. #include "MaterialBoxGraphicsView.h"
  11. #include <QFrame>
  12. #include <dt.h>
  13. #include "CViewInterface.h"
  14. // 枚举定义:料盒的状态
  15. enum BoxStatus {
  16. Idle, // 空闲
  17. Occupied, // 已占用
  18. };
  19. // 料盒
  20. class MaterialBox : public QWidget
  21. {
  22. public:
  23. MaterialBox(int flag, QWidget *parent = nullptr);
  24. void paintInitFrom(QWidget *parent);
  25. QPixmap getGlobalPixmap() const;
  26. void initFrom(QWidget *parent);
  27. void UpdataVal(std::vector<ns_module::MATERIAL_BOX_STRUCT>& veMaterial);
  28. void UpdataGenerateTestData();
  29. void setMaterialBoxInfo(ns_module::CViewInterface* CViewInterface);
  30. private slots:
  31. void handleLayerRightClicked(int layer);
  32. protected:
  33. void paintEvent(QPaintEvent *event) override;
  34. private:
  35. // 所有料盒的数据
  36. ns_module::MATERIAL_BOX_STRUCT m_boxes;
  37. QPixmap globalPixmap;
  38. ns_module::CViewInterface* m_pCViewInterface;
  39. public:
  40. MaterialBoxGraphicsView* m_pView = nullptr;
  41. QGraphicsScene* m_pScene = nullptr;
  42. };
  43. #endif // MATERIALBOX_H