#ifndef MATERIALBOX_H #define MATERIALBOX_H #include #include #include #include #include #include #include #include "MaterialBoxGraphicsView.h" #include #include // 枚举定义:料盒的状态 enum BoxStatus { Idle, // 空闲 Occupied, // 已占用 }; typedef struct { int iCurrLayers; //当前工作层 int iLayersTotal; //总层数 int iTopLev; //最上层高度 int iBottomLev; //最下层高度 XY_DOUBLE_STRUCT stPos; //料盒位置; int iStatas[32]; //每层状态,0表示空,1表示有料。 int iLength; //料盒长度 int iLeight; //料盒高度 int iWall; //侧壁厚 int iTopWall; //上壁厚 int iBelowWall; //下壁厚 }MATERIAL_BOX_STRUCT; // 自定义绘制窗口类 class MaterialBox : public QWidget { public: MaterialBox(int flag, QWidget *parent = nullptr); void paintInitFrom(QWidget *parent); QPixmap getGlobalPixmap() const; void initFrom(QWidget *parent); MaterialBoxGraphicsView* view; QGraphicsScene* scene; private slots: void handleLayerRightClicked(int layer); protected: void paintEvent(QPaintEvent *event) override; private: MATERIAL_BOX_STRUCT boxes; // 所有料盒的数据 QPixmap globalPixmap; }; #endif // MATERIALBOX_H