#ifndef ADDPERSONFORM_H #define ADDPERSONFORM_H #include <QWidget> #include <QFile> #include "QDblClickLabel.h" #include "OperationTipsDialog.h" #include "casic/ProMemory.h" #include "dao/util/CacheManager.h" #include "utils/UtilInclude.h" namespace Ui { class AddPersonForm; } class AddPersonForm : public QWidget { Q_OBJECT public: explicit AddPersonForm(QWidget *parent = nullptr); ~AddPersonForm(); void setPersonId(QString personId); void updateFormTitle(QString title); void loadPersonInfo(QString personId); void clearPersonInfo(); public slots: void drawImageOnForm(QImage imageDisp); void drawIrisImageOnFrame(QImage image, int leftOrRight); void onFailedCaptureFace(); // 采集人脸失败 void onSuccessCaptureFace(QString personIdByFace); // 采集人脸成功 没有匹配/有匹配到 void onFailedCaptureIris(); // 采集虹膜失败 void onMatchedIris(QString personIdByIris); // 采集虹膜成功 有匹配 void onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo); // 采集虹膜成功 没有匹配到 private slots: void on_btnBack_clicked(); void on_btnHome_clicked(); void on_btnSave_clicked(); void onPhotoFaceDoubleClicked(); void onPhotoIrisDoubleClicked(); private: Ui::AddPersonForm *ui; QString personId; QString face; // 人脸图像数据 QByteArray faceCode; // 人脸特征编码数据 bool faceReCaptured; // 编辑时是否需要更新人脸数据 QString leftIris; // 左眼虹膜图像数据 QString rightIris; // 右眼虹膜图像数据 QByteArray leftIrisCode; // 左眼虹膜特征值编码数据 QByteArray rightIrisCode; // 右眼虹膜特征值编码数据 bool irisReCaptured; // 编辑时是否需要更新虹膜数据 QLabel * faceLabel; // 采集人脸时显示的画面 QLabel * leftIrisLabel; // 采集时左眼显示的画面 QLabel * rightIrisLabel; // 采集时右眼显示的画面 bool validateForm(); void registPerson(); void editPersonInfo(); void updateIrisImage(CasicIrisInfo * irisInfo); signals: void switchToUserListForm(); void backToHomePage(); void startCaptureFace(); }; #endif // ADDPERSONFORM_H