#include "RecognizeResultForm.h" #include "ui_RecognizeResultForm.h" RecognizeResultForm::RecognizeResultForm(QWidget *parent) : QWidget(parent), ui(new Ui::RecognizeResultForm) { ui->setupUi(this); ui->labVideo->hide(); // 加载css文件设置控件样式 QFile file(QApplication::applicationDirPath() + "/qss/recognize.css"); if (file.open(QFile::ReadOnly)) { QString qssStr = QLatin1String(file.readAll()); this->setStyleSheet(qssStr); file.close(); } } RecognizeResultForm::~RecognizeResultForm() { delete ui; } void RecognizeResultForm::startWorkingRecognize() { // 开始人脸识别 ProMemory::getInstance().faceRecogPro->setWorking(true); // 将界面切换到识别界面 RecognizeResultForm ProMemory::getInstance().faceCam->openFaceCamera(SettingConfig::getInstance().FACE_FRAME_INTERVAL); // 1人脸图像显示的容器 ui->labVideo->resize(1280, 720); ui->labVideo->move(0, 80); ui->labVideo->raise(); ui->labVideo->show(); ui->labTitle->raise(); ui->labTitle->show(); ui->labTitle->setText("正在识别"); ui->labTitle->setStyleSheet("background: rgba(72, 80, 170, 0.75)"); } void RecognizeResultForm::drawImageOnHomeForm(QImage imageDisp) { if (ui->labVideo->isVisible() == true) { ui->labVideo->setPixmap(QPixmap::fromImage(imageDisp)); } } void RecognizeResultForm::showRecogFailure() { SpeakerUtil::getInstance().speak("识别失败,请重试"); ui->labVideo->hide(); ui->labTitle->hide(); ui->widgetSucc->hide(); ui->widgetFail->raise(); ui->widgetFail->show(); QTimer::singleShot(SettingConfig::getInstance().FAILURE_TIPS_LAST, [=](){ emit backToHomeAndWait(); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; ui->labBackground->raise(); }); } void RecognizeResultForm::showRecognizeResult(QString personId) { SpeakerUtil::getInstance().speak("识别成功"); ui->labVideo->hide(); ui->labTitle->hide(); ui->widgetFail->hide(); // 查询并显示人员信息 SysPersonDao personDao; QVariantMap personInfo = personDao.findRecordById(personId); ui->labNameText->setText(""); ui->labNameText->setText(personInfo.value("name").toString()); ui->labGenderText->setText(""); ui->labGenderText->setText(CacheManager::getInstance().getGenderName().value(personInfo.value("gender").toString()).toString()); ui->labDeptText->setText(""); ui->labDeptText->setText(personInfo.value("deptname").toString()); ui->labTimeText->setText(""); ui->labTimeText->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); FaceDataImgDao faceImgDao; QVariantMap photoImage = faceImgDao.findRecordByPersonId(personId); if (photoImage.isEmpty() == false) { QString imageData = photoImage.find("face_image")->toString(); QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); ui->labPhotot->setPixmap(QPixmap::fromImage(image)); } ui->widgetSucc->raise(); ui->widgetSucc->show(); QTimer::singleShot(SettingConfig::getInstance().SUCCESS_TIPS_LAST, [=](){ emit backToHomeAndWait(); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; ui->labBackground->raise(); }); }