123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #pragma once
- #include <QWidget>
- #include "ui_BondMatrixProgramPage.h"
- #include "CViewInterface.h"
- #include "CModule.h"
- #include <QGroupBox>
- #include <QLineEdit>
- #include <QLabel>
- #include <QPushButton>
- #include <QHBoxLayout>
- #include <QVBoxLayout>
- #include <algorithm>
- 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<PROGRAM_POINT_MATRIX_STRUCT> 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<ns_db::PICKBOND_PARAM_STRUCT> m_vecParam;
- std::vector<ns_db::PROGRAM_BOND_MATRIX_STRUCT> m_vectBondMatrixs;
- std::vector<ns_db::PROGRAM_POINT_MATRIX_STRUCT> m_vecSubMatrixs;
- std::vector<BOND_INFO_STRUCT> m_vecBondInfoData;
- //子矩阵控件,ID从1开始
- QMap<int, QVector<QObject*>> m_mapSubMatrixControls;
- int m_curPtIndex = 0;
- // 新增字段: 用于管理大矩阵与子矩阵的关系
- //QMap<int, std::vector<int>> m_mapBondMatrixToSubMatrices; // 大矩阵ID和对应子矩阵ID的映射
- QMap<int, std::vector<ns_db::PROGRAM_POINT_MATRIX_STRUCT>> m_mapBondMatrixToSubMatrices; // 大矩阵ID和对应子矩阵ID的映射
- // 用于标识当前矩阵类型(如大矩阵或子矩阵)
- bool m_isSubMatrix = false; // 标记是否为子矩阵
- QMap<QWidget*, int> m_mapSubWidgetIndex;
- QMap<QWidget*, int> m_mapOutWidgetIndex;
- //QComboBox* comboBoxParagramSet;
- QMap<QComboBox*, int> m_mapParagramSetComboBox;
- };
|