#ifndef WAFER_PROGRAM_PAGE_H #define WAFER_PROGRAM_PAGE_H #include "Src/Sql/SqlOperation.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class WaferProgramPage : public QWidget { Q_OBJECT public: explicit WaferProgramPage(QWidget* parent = nullptr); static QWidget* CreateWaferProgramPage(); QComboBox* createDieMatrixIdComboBox(int defaultId, int row); private slots: void addRow(); void deleteRow(); void updateData(); void onCellChanged(int row, int column); private: // 初始化合并后的数据(多表) void initMergedData(); private: QTableWidget* mergedTable; CONFIG_BASE_STRUCT controlConfig; CProduct* m_pCProduct = nullptr;//CManageDB::GetInstance()->GetCProduct(); std::vector m_VecWaferMatrix; std::vector m_VecDieMatrixt; static std::unordered_map idIsUsedMap; bool m_isInitializing = false; }; class NoBondPtEditDialog : public QDialog { Q_OBJECT public: NoBondPtEditDialog(int rows, int cols, const std::vector& selectedPts, QWidget* parent = nullptr); QVector getSelectedPoints() const; protected: void mousePressEvent(QMouseEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override; void mouseReleaseEvent(QMouseEvent* event) override; private: QSet> selectedSet; Qt::MouseButton dragButton = Qt::NoButton; QMap> buttonMap; QRubberBand* rubberBand = nullptr; QPoint dragStart; bool isDragging = false; }; #endif // WAFER_PROGRAM_PAGE_H