123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #include "noisemonitorparamdialog.h"
- #include "ui_noisemonitorparamwidget.h"
- #include <QFile>
- #include <QIntValidator>
- #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();
- }
|