WaferProgramPage.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef WAFER_PROGRAM_PAGE_H
  2. #define WAFER_PROGRAM_PAGE_H
  3. #include "Src/Sql/SqlOperation.h"
  4. #include <QWidget>
  5. #include <QFileDialog>
  6. #include <QTextStream>
  7. #include <QHeaderView>
  8. #include <QTableWidget>
  9. #include <QPushButton>
  10. #include <QVBoxLayout>
  11. #include <QHBoxLayout>
  12. #include <QSqlQuery>
  13. #include <QJsonDocument>
  14. #include <QJsonObject>
  15. #include <QMessageBox>
  16. #include <unordered_map>
  17. #include <QtWidgets/qcombobox.h>
  18. #include <QGridLayout>
  19. #include <QDialogButtonBox>
  20. #include <QMouseEvent>
  21. #include <QRubberBand>
  22. class WaferProgramPage : public QWidget {
  23. Q_OBJECT
  24. public:
  25. explicit WaferProgramPage(QWidget* parent = nullptr);
  26. static QWidget* CreateWaferProgramPage();
  27. QComboBox* createDieMatrixIdComboBox(int defaultId, int row);
  28. private slots:
  29. void addRow();
  30. void deleteRow();
  31. void updateData();
  32. void onCellChanged(int row, int column);
  33. private:
  34. // 初始化合并后的数据(多表)
  35. void initMergedData();
  36. private:
  37. QTableWidget* mergedTable;
  38. CONFIG_BASE_STRUCT controlConfig;
  39. CProduct* m_pCProduct = nullptr;//CManageDB::GetInstance()->GetCProduct();
  40. std::vector<PROGRAM_WAFER_MATRIX_STRUCT> m_VecWaferMatrix;
  41. std::vector<PROGRAM_DIE_MATRIX_STRUCT> m_VecDieMatrixt;
  42. static std::unordered_map<int, bool> idIsUsedMap;
  43. bool m_isInitializing = false;
  44. };
  45. class NoBondPtEditDialog : public QDialog {
  46. Q_OBJECT
  47. public:
  48. NoBondPtEditDialog(int rows, int cols, const std::vector<XY_LONG_STRUCT>& selectedPts, QWidget* parent = nullptr);
  49. QVector<XY_LONG_STRUCT> getSelectedPoints() const;
  50. protected:
  51. void mousePressEvent(QMouseEvent* event) override;
  52. void mouseMoveEvent(QMouseEvent* event) override;
  53. void mouseReleaseEvent(QMouseEvent* event) override;
  54. private:
  55. QSet<QPair<int, int>> selectedSet;
  56. Qt::MouseButton dragButton = Qt::NoButton;
  57. QMap<QPushButton*, QPair<int, int>> buttonMap;
  58. QRubberBand* rubberBand = nullptr;
  59. QPoint dragStart;
  60. bool isDragging = false;
  61. };
  62. #endif // WAFER_PROGRAM_PAGE_H