#include "StartupForm.h" #include "ui_StartupForm.h" StartupForm::StartupForm(QWidget *parent) : QWidget(parent), ui(new Ui::StartupForm) { ui->setupUi(this); // 初始化时更新显示的时间 this->updateDateAndTime(); // 加载css文件设置控件样式 QFile file(QApplication::applicationDirPath() + "/qss/startup.css"); if (file.open(QFile::ReadOnly)) { QString qssStr = QLatin1String(file.readAll()); this->setStyleSheet(qssStr); file.close(); } // 设置弹簧的高度和宽度 ui->vsTop->changeSize(0, 200); ui->vsMidd->changeSize(0, 100); ui->hsLeft->changeSize(400, 0); ui->hsMidd->changeSize(150, 0); // 初始化更新界面的定时器 // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } StartupForm::~StartupForm() { delete ui; } void StartupForm::updateDateAndTime() { ui->labTime->setText(QTime::currentTime().toString("HH:mm:ss")); ui->labDate->setText(QDate::currentDate().toString("yyyy-MM-dd")); } void StartupForm::takeOneFrameForCheckStatus() { if (ProMemory::getInstance().appState != CasicBioRecConst::ApplicationState::STATE_WAIT) { // 非待机状态直接返回 return; } cv::Mat rawFrame = ProMemory::getInstance().faceCam->takeOneRawFrame(); bool hasFace = casic::face::CasicFaceInterface::getInstance().hasFaceDetectedByCVCascade(rawFrame, 100); if (hasFace == true) { LOG(INFO) << QString("FACE DETECTED START WORKING").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 // 槽函数 CasicBioRecWin::switchToRecognizeForm emit startRecognize(); // 退出 return ; } } void StartupForm::on_btnUser_clicked() { emit switchToUserListForm(); } void StartupForm::on_btnSetting_clicked() { emit switchToSettingForm(); }