Wafer.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #ifndef WAFER_H
  2. #define WAFER_H
  3. #pragma once
  4. #include <QWidget>
  5. #include <vector>
  6. #include <QMenu>
  7. #include "WaferGraphicsView.h"
  8. #include "DieItem.h"
  9. #include <CWaferMatrix.h>
  10. #include <CViewInterface.h>
  11. #include "TypeDef.h"
  12. #include <QImage>
  13. #include <QPixmap>
  14. enum OperateMode {
  15. ModeImage, // 显示图片
  16. ModeView // 显示 view
  17. };
  18. typedef struct {
  19. int maxRow;
  20. int maxCol;
  21. double minX;
  22. double minY;
  23. double maxX;
  24. double maxY;
  25. }MaxRow_Col;
  26. class Wafer : public QWidget
  27. {
  28. Q_OBJECT
  29. public:
  30. explicit Wafer(int flag, QWidget *parent = nullptr);
  31. void UpdataGenerateTestData();
  32. /**晶圆
  33. */
  34. void UpdataVal(const std::vector<ns_mat::WAFER_MATRIX_POINT_INFO_STRUCT>& veWafer);
  35. void initFrom(QWidget *parent);
  36. void paintInitFrom(QWidget *parent);
  37. QPixmap getGlobalPixmap() const;
  38. QColor getColorByStatus(ns_mat::PICK_DIE_STATUS status);
  39. void setWaferInfo(ns_module::CViewInterface* CViewInterface);
  40. signals:
  41. void sendCoordinates(int x, int y);
  42. private:
  43. int Flag;
  44. QVector<ns_mat::WAFER_MATRIX_POINT_INFO_STRUCT> waferData;
  45. //int rows, cols;
  46. int m_dieLong;
  47. int m_dieWide;
  48. double m_centerX, m_centerY;
  49. double m_radius;
  50. /**接口指针
  51. */
  52. ns_module::CViewInterface* m_pCViewInterface = nullptr;
  53. QMenu *contextMenu = nullptr;
  54. QPixmap m_globalPixmap;
  55. QMap<UINT, MaxRow_Col> maxRow_Colmap;
  56. public:
  57. /**在外面new 画布?
  58. */
  59. QPointer<QGraphicsScene> m_pScene;
  60. WaferGraphicsView* m_pView = nullptr;
  61. QPointer<QWidget> m_parent;
  62. };
  63. #endif // WAFER_H