#include "noisemonitorparamdialog.h" #include "ui_noisemonitorparamwidget.h" #include #include #include "UIStyleManager.h" NoiseMonitorParamDialog::NoiseMonitorParamDialog(QWidget *parent) : DialogBase(parent), ui(new Ui::NoiseMonitorParamWidget) { QWidget* content = new QWidget(this); ui->setupUi(content); m_logger = spdlog::get("ACASetting"); if(m_logger == nullptr) { fmt::print("NoiseMonitorParamDialog: Logger ACASetting not found\n"); return; } /* 设置弹窗内容 */ setContentWidget(content); /* 设置弹窗标题 */ setTitle("噪音监测参数"); /* 设置lineEdit输入限制 */ ui->lineEdit_noiseDetectContinueCount->setValidator(new QIntValidator(1, 100, this)); ui->lineEdit_noiseContinueCountIsWarn->setValidator(new QIntValidator(1, 10, this)); ui->lineEdit_noiseContinueCountPercent->setValidator(new QIntValidator(1, 100, this)); ui->lineEdit_freqComponentMini->setValidator(new QIntValidator(this)); ui->lineEdit_freqComponentMax->setValidator(new QIntValidator(this)); ui->lineEdit_oneDBThreshold->setValidator(new QDoubleValidator(0.0, 1.0, 2, this)); ui->lineEdit_oneDBComponentMini->setValidator(new QIntValidator(-30, 30, this)); ui->lineEdit_noiseThreahold->setValidator(new QDoubleValidator(0.0, 1.0, 2, this)); ui->lineEdit_noiseComponentMini->setValidator(new QIntValidator(-30, 30, this)); ui->lineEdit_noiseDetectDuration->setValidator(new QIntValidator(this)); ui->lineEdit_noiseDetectPercent->setValidator(new QIntValidator(1, 100, this)); ui->lineEdit_noiseDBMax->setValidator(new QIntValidator(this)); /* 设置qss */ setQss(); } NoiseMonitorParamDialog::~NoiseMonitorParamDialog() { delete ui; } /* 设置初始参数 */ void NoiseMonitorParamDialog::setInitialParams(NoiseDetectParam_t& noiseDetectParam) { m_noiseDetectParam = noiseDetectParam; /* 设置初始参数到界面 */ ui->lineEdit_registCode->setText(noiseDetectParam.strRegitrationCode); ui->lineEdit_noiseDetectContinueCount->setText(QString::number(noiseDetectParam.nNoiseDetectContinueCount)); ui->lineEdit_noiseContinueCountIsWarn->setText(QString::number(noiseDetectParam.nNoiseContinueCountIsWarn)); ui->lineEdit_noiseContinueCountPercent->setText(QString::number(noiseDetectParam.nNoiseContinueCountPercent)); ui->lineEdit_freqComponentMini->setText(QString::number(noiseDetectParam.nFreqComponentMini)); ui->lineEdit_freqComponentMax->setText(QString::number(noiseDetectParam.nFreqComponentMax)); ui->lineEdit_oneDBThreshold->setText(QString::number(noiseDetectParam.fOneDBThreshold)); ui->lineEdit_oneDBComponentMini->setText(QString::number(noiseDetectParam.nOneDBComponentMini)); ui->lineEdit_noiseThreahold->setText(QString::number(noiseDetectParam.fNoiseThreshold)); ui->lineEdit_noiseComponentMini->setText(QString::number(noiseDetectParam.nNoiseComponentMini)); ui->lineEdit_noiseDetectDuration->setText(QString::number(noiseDetectParam.nNoiseDetectDuration)); ui->lineEdit_noiseDetectPercent->setText(QString::number(noiseDetectParam.nNoiseDetectPercent)); ui->lineEdit_noiseDBMax->setText(QString::number(noiseDetectParam.nNoiseDBMax)); } /* 设置qss */ void NoiseMonitorParamDialog::setQss() { QString qssPath = UIStyle.getQSSPath() + "/noisemonitorparamwidget.qss"; QFile file(qssPath); if(file.open(QFile::ReadOnly)) { QString qss = file.readAll(); this->setStyleSheet(qss); file.close(); }else { SPDLOG_LOGGER_WARN(m_logger, "无法打开QSS文件: {}", qssPath.toStdString()); } } /* 点击了OK */ bool NoiseMonitorParamDialog::isOKClicked() { updateNoiseDetectParam(); return true; } /* 更新噪音检测参数 */ void NoiseMonitorParamDialog::updateNoiseDetectParam() { m_noiseDetectParam.strRegitrationCode = ui->lineEdit_registCode->text(); m_noiseDetectParam.nNoiseDetectContinueCount = ui->lineEdit_noiseDetectContinueCount->text().toInt(); m_noiseDetectParam.nNoiseContinueCountIsWarn = ui->lineEdit_noiseContinueCountIsWarn->text().toInt(); m_noiseDetectParam.nNoiseContinueCountPercent = ui->lineEdit_noiseContinueCountPercent->text().toInt(); m_noiseDetectParam.nFreqComponentMini = ui->lineEdit_freqComponentMini->text().toInt(); m_noiseDetectParam.nFreqComponentMax = ui->lineEdit_freqComponentMax->text().toInt(); m_noiseDetectParam.fOneDBThreshold = ui->lineEdit_oneDBThreshold->text().toFloat(); m_noiseDetectParam.nOneDBComponentMini = ui->lineEdit_oneDBComponentMini->text().toInt(); m_noiseDetectParam.fNoiseThreshold = ui->lineEdit_noiseThreahold->text().toFloat(); m_noiseDetectParam.nNoiseComponentMini = ui->lineEdit_noiseComponentMini->text().toInt(); m_noiseDetectParam.nNoiseDetectDuration = ui->lineEdit_noiseDetectDuration->text().toInt(); m_noiseDetectParam.nNoiseDetectPercent = ui->lineEdit_noiseDetectPercent->text().toInt(); m_noiseDetectParam.nNoiseDBMax = ui->lineEdit_noiseDBMax->text().toInt(); }