MaterialBox.h 834 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. // 枚举定义:料盒的状态
  11. enum BoxStatus {
  12. Idle, // 空闲
  13. Occupied, // 已占用
  14. Warning // 警告
  15. };
  16. // 料盒类
  17. class Material_box {
  18. public:
  19. Material_box(const QString &name, BoxStatus status)
  20. : name(name), status(status) {}
  21. QString name; // 料盒名称或编号
  22. BoxStatus status; // 状态
  23. };
  24. // 自定义绘制窗口类
  25. class MaterialBox : public QWidget {
  26. public:
  27. MaterialBox(int flag, QWidget *parent = nullptr);
  28. protected:
  29. void paintEvent(QPaintEvent *event) override;
  30. private:
  31. std::vector<Material_box> boxes; // 所有料盒的数据
  32. };
  33. #endif // MATERIALBOX_H