#include "CasicBioRecWin.h" #include "ui_CasicBioRecWin.h" #include <QKeyEvent> #include <QTimer> CasicBioRecWin::CasicBioRecWin(QWidget *parent) : QMainWindow(parent) , ui(new Ui::CasicBioRecWin) { ui->setupUi(this); // 程序启动时初始化缓存的数据 this->initCacheData(); // 设置窗口透明和大小、位置 this->setWindowFlags(Qt::FramelessWindowHint); this->move(0, 0); this->resize(SettingConfig::getInstance().WINDOW_WIDTH, SettingConfig::getInstance().WINDOW_HEIGHT); // 通过调色板的颜色来设置窗口的统一背景色 qApp->setPalette(QPalette(QColor(SettingConfig::getInstance().WINDOW_BACKGROUND_COLOR))); // 初始化各个form界面并绑定切换响应函数 this->initFormsPtr(); // 打印日志 LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); } CasicBioRecWin::~CasicBioRecWin() { delete ui; } void CasicBioRecWin::keyPressEvent(QKeyEvent *event) { switch (event->key()) { case Qt::Key_Escape: QTimer::singleShot(100, qApp, SLOT(quit())); default: QWidget::keyPressEvent(event); } } void CasicBioRecWin::backToStandByForm() { ui->stacked->setCurrentWidget(startForm); } void CasicBioRecWin::switchToUserListForm() { personListForm->findPersonList(); ui->stacked->setCurrentWidget(personListForm); } void CasicBioRecWin::switchToSettingForm() { } void CasicBioRecWin::switchToRegistForm(QString personId) { // 根据传递的参数更新页面标题 if (personId.isEmpty() == false) { addPersonForm->setPersonId(personId); addPersonForm->updateFormTitle("人员信息"); // 查询人员信息 addPersonForm->loadPersonInfo(personId); } else { addPersonForm->updateFormTitle("人员注册"); addPersonForm->clearPersonInfo(); } // 切换页面 ui->stacked->setCurrentWidget(addPersonForm); } void CasicBioRecWin::initFormsPtr() { startForm = new StartupForm(this); personListForm = new PersonListForm(this); settingForm = new SettingForm(this); addPersonForm = new AddPersonForm(this); ui->stacked->addWidget(startForm); ui->stacked->addWidget(personListForm); ui->stacked->addWidget(settingForm); ui->stacked->addWidget(addPersonForm); ui->stacked->setCurrentWidget(personListForm); // 绑定按钮函数 connect(startForm, &StartupForm::switchToUserListForm, this, &CasicBioRecWin::switchToUserListForm); connect(startForm, &StartupForm::switchToSettingForm, this, &CasicBioRecWin::switchToSettingForm); connect(personListForm, &PersonListForm::switchToRegistForm, this, &CasicBioRecWin::switchToRegistForm); connect(personListForm, &PersonListForm::backToHomePage, this, &CasicBioRecWin::backToStandByForm); connect(addPersonForm, &AddPersonForm::switchToUserListForm, this, &CasicBioRecWin::switchToUserListForm); connect(addPersonForm, &AddPersonForm::backToHomePage, this, &CasicBioRecWin::backToStandByForm); } void CasicBioRecWin::initCacheData() { CacheManager::getInstance().updateDeptCache(); }