MaterialBox.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. // 枚举定义:料盒的状态
  14. enum BoxStatus {
  15. Idle, // 空闲
  16. Occupied, // 已占用
  17. };
  18. typedef struct
  19. {
  20. int iCurrLayers; //当前工作层
  21. int iLayersTotal; //总层数
  22. int iTopLev; //最上层高度
  23. int iBottomLev; //最下层高度
  24. XY_DOUBLE_STRUCT stPos; //料盒位置;
  25. int iStatas[32]; //每层状态,0表示空,1表示有料。
  26. int iLength; //料盒长度
  27. int iLeight; //料盒高度
  28. int iWall; //侧壁厚
  29. int iTopWall; //上壁厚
  30. int iBelowWall; //下壁厚
  31. }MATERIAL_BOX_STRUCT;
  32. // 自定义绘制窗口类
  33. class MaterialBox : public QWidget {
  34. public:
  35. MaterialBox(int flag, QWidget *parent = nullptr);
  36. void paintInitFrom(QWidget *parent);
  37. QPixmap getGlobalPixmap() const;
  38. void initFrom(QWidget *parent);
  39. MaterialBoxGraphicsView* view;
  40. QGraphicsScene* scene;
  41. private slots:
  42. void handleLayerRightClicked(int layer);
  43. protected:
  44. void paintEvent(QPaintEvent *event) override;
  45. private:
  46. MATERIAL_BOX_STRUCT boxes; // 所有料盒的数据
  47. QPixmap globalPixmap;
  48. };
  49. #endif // MATERIALBOX_H