#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); XY_DOUBLE_STRUCT BondMoveToXYAxisPosition(std::string ModuleType, XY_DOUBLE_STRUCT& pos); //往后端新增矩阵数据 void AddMatrixParam(); //更新参数,根据选择的点更新界面参数显示 void UpdatePageParam(); //更新取/固晶参数,根据选择的点更新界面参数显示 void UpdatePagePickPlaceParam(); //参数被修改后发送给后端 void ParamChangeEvent(); int BondInfoParamSaveAsEvent(); int ParamSaveAsEvent(ns_db::PICKBOND_PARAM_STRUCT &m_curWaferPickParam); //参数被修改后发送给后端 void MatrixChangeEvent(); //更新取晶参数 void UpdatePagePickParam(); //更新固晶参数 void UpdatePageBondParam(); void initPage(); // 初始化取晶控件连接 void connectWaferPickControls(); // 华夫盒取晶 void connectCalibPickControls(); // 中转台取晶 // 初始化放晶控件连接 void connectCalibPlaceControls(); void connectBondControls(); void ShowCurrentMatrix(int bondMatrixId); protected: bool eventFilter(QObject* watched, QEvent* event) override; private slots: void onNoBondPtsClicked(QLineEdit* lineEdit, int index, int parentIndex); void UpdateShowBondInfoData(UINT iInfoId); void onComboBoxCurrentMatrixChanged(int index); // 切换矩阵 void onComboBoxIndexChangedForMatrixParam(int index); void onComboBoxIndexChangedForParam(int index); void onComboBoxPopup(QComboBox* comboBox); //ModifyParam void onSetParamPickTempClicked(); void onSetParamPreBondClicked(); void onSetParamPostBondClicked(); void onSetParamBondClicked(); void onSetParamLookUpClicked(); void onSetParamCalibPickClicked(); //CreateParam void onCreateParamPickTempClicked(); void onCreateParamPreBondClicked(); void onCreateParamPostBondClicked(); void onCreateParamBondClicked(); void onCreateParamLookUpClicked(); void onCreateParamCalibPickClicked(); // ——— 取晶槽函数 ——— // 取晶头取晶 void onCheckBoxPickBlockCheckClicked(bool); void onCheckBoxPickLoseCheckClicked(bool); void onCheckBoxPickFindForceCheckClicked(bool); void onDoubleSpinBoxPrePickZEditingFinished(); void onDoubleSpinBoxPickForceEditingFinished(); void onDoubleSpinBoxPickPosZEditingFinished(); void onSpinBoxPickGrabDelayEditingFinished(); void onSpinBoxPickDelayEditingFinished(); void onSpinBoxPickBlockCheckDelayEditingFinished(); void onSpinBoxPickVacDelayEditingFinished(); void onSpinBoxPickBlowDelayEditingFinished(); // 中转台取晶 void onCheckBoxPickBlockCheck_2Clicked(bool); void onCheckBoxPickLoseCheck_2Clicked(bool); void onCheckBoxPickFindForceCheck_2Clicked(bool); void onDoubleSpinBoxPrePickZ_2EditingFinished(); void onDoubleSpinBoxPickForce_2EditingFinished(); void onDoubleSpinBoxPickPosZ_2EditingFinished(); void onSpinBoxPickGrabDelay_2EditingFinished(); void onSpinBoxPickDelay_2EditingFinished(); void onSpinBoxPickBlockCheckDelay_2EditingFinished(); void onSpinBoxPickVacDelay_2EditingFinished(); void onSpinBoxPickBlowDelay_2EditingFinished(); // "中转台放晶" 控件的槽函数 void onCheckBoxBondBlockCheckClicked(bool isChecked); void onCheckBoxBondLoseCheckClicked(bool isChecked); void onCheckBoxBondFindForceClicked(bool isChecked); void onDoubleSpinBoxPreBondPosZEditingFinished(); void onDoubleSpinBoxBondForceEditingFinished(); void onDoubleSpinBoxBondPosZEditingFinished(); void onSpinBoxBondGrabDelayEditingFinished(); void onSpinBoxBondBlockCheckDelayEditingFinished(); void onSpinBoxBondDelayEditingFinished(); void onSpinBoxBondVacDelayEditingFinished(); void onSpinBoxBondBlowDelayEditingFinished(); // "固晶台固晶" 控件的槽函数 void onCheckBoxBondBlockCheck_2Clicked(bool isChecked); void onCheckBoxBondLoseCheck_2Clicked(bool isChecked); void onCheckBoxBondFindForce_2Clicked(bool isChecked); void onDoubleSpinBoxPreBondPosZ_2EditingFinished(); void onDoubleSpinBoxBondForce_2EditingFinished(); void onDoubleSpinBoxBondPosZ_2EditingFinished(); void onSpinBoxBondGrabDelay_2EditingFinished(); void onSpinBoxBondBlockCheckDelay_2EditingFinished(); void onSpinBoxBondDelay_2EditingFinished(); void onSpinBoxBondVacDelay_2EditingFinished(); void onSpinBoxBondBlowDelay_2EditingFinished(); private: Ui::BondMatrixProgramPageClass ui; CManageDB* m_manageDB = nullptr; CProduct* m_pProduct = nullptr; std::vector m_vecPrStrategy; std::vector m_vecPrTemplate; std::vector m_vecPrBondInsp; //当前界面显示的参数 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; QVBoxLayout* verticalLayout_tem = new QVBoxLayout(); bool m_assss = false; };