#ifndef MATERIALBOX_H #define MATERIALBOX_H #include <QApplication> #include <QWidget> #include <QPainter> #include <QMouseEvent> #include <vector> #include <QString> #include <QDebug> #include "MaterialBoxGraphicsView.h" #include <QFrame> #include <dt.h> #include "CViewInterface.h" // 枚举定义:料盒的状态 enum BoxStatus { Idle, // 空闲 Occupied, // 已占用 }; // 料盒 class MaterialBox : public QWidget { public: MaterialBox(int flag, QWidget *parent = nullptr); void paintInitFrom(QWidget *parent); QPixmap getGlobalPixmap() const; void initFrom(QWidget *parent); void UpdataVal(std::vector<ns_module::MATERIAL_BOX_STRUCT>& veMaterial); void UpdataGenerateTestData(); private slots: void handleLayerRightClicked(int layer); protected: void paintEvent(QPaintEvent *event) override; private: // 所有料盒的数据 ns_module::MATERIAL_BOX_STRUCT m_boxes; QPixmap globalPixmap; public: MaterialBoxGraphicsView* m_pView = nullptr; QGraphicsScene* m_pScene = nullptr; }; #endif // MATERIALBOX_H