#pragma once #include #include "ui_BondMatrixProgramPage.h" #include "CViewInterface.h" #include "CModule.h" #include #include #include #include #include #include #include class BondMatrixProgramPage : public QWidget { Q_OBJECT public: BondMatrixProgramPage(QWidget* parent = nullptr); ~BondMatrixProgramPage(); private: //新增矩阵界面 //void AddMatrixPage(int bondMatrixVectorIndex, int vectorIndex, PROGRAM_POINT_MATRIX_STRUCT matrixData); void AddMatrixPage(int vectorIndex, int subVectorIndex, PROGRAM_POINT_MATRIX_STRUCT matrixData, QGridLayout* layout); void AddOutMatrixPage(int vectorIndex, PROGRAM_BOND_MATRIX_STRUCT matrixData, std::vector vecSubMatrix); //void AddOutMatrixPage(int vectorIndex, PROGRAM_BOND_MATRIX_STRUCT matrixData); XY_DOUBLE_STRUCT BondGetAxisPosition(std::string ModuleType, XY_DOUBLE_STRUCT& pos); //往后端新增矩阵数据 void AddMatrixParam(); //更新参数,根据选择的点更新界面参数显示 void UpdatePageParam(); //参数被修改后发送给后端 void ParamChangeEvent(); int ParamSaveAsEvent(); //参数被修改后发送给后端 void MatrixChangeEvent(); //更新取晶参数 void UpdatePagePickParam(); //更新固晶参数 void UpdatePageBondParam(); void initPage(); protected: bool eventFilter(QObject* watched, QEvent* event) override; private slots: void onNoBondPtsClicked(QLineEdit* lineEdit, int index, int parentIndex); void UpdateShowBondInfoData(UINT iInfoId); void onComboBoxIndexChanged(int index); void onComboBoxPopup(); private: Ui::BondMatrixProgramPageClass ui; CManageDB* m_manageDB = nullptr; CProduct* m_pProduct = nullptr; //当前界面显示的参数 ns_db::BOND_INFO_STRUCT m_curBondInfo; ns_db::PICKBOND_PARAM_STRUCT m_curWaferPickParam; ns_db::PICKBOND_PARAM_STRUCT m_curCalibPlaceParam; ns_db::PICKBOND_PARAM_STRUCT m_curCalibPickParam; ns_db::PICKBOND_PARAM_STRUCT m_curBondParam; ns_mat::POINT_INFO_STRUCT m_curPointInfo; ns_module::CViewInterface* m_pProgramCViewInterface = nullptr; std::vector m_vecParam; std::vector m_vectBondMatrixs; std::vector m_vecSubMatrixs; std::vector m_vecBondInfoData; //子矩阵控件,ID从1开始 QMap> m_mapSubMatrixControls; int m_curPtIndex = 0; // 新增字段: 用于管理大矩阵与子矩阵的关系 //QMap> m_mapBondMatrixToSubMatrices; // 大矩阵ID和对应子矩阵ID的映射 QMap> m_mapBondMatrixToSubMatrices; // 大矩阵ID和对应子矩阵ID的映射 // 用于标识当前矩阵类型(如大矩阵或子矩阵) bool m_isSubMatrix = false; // 标记是否为子矩阵 QMap m_mapSubWidgetIndex; QMap m_mapOutWidgetIndex; //QComboBox* comboBoxParagramSet; QMap m_mapParagramSetComboBox; };