noisemonitorparamdialog.cpp 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #include "noisemonitorparamdialog.h"
  2. #include "ui_noisemonitorparamwidget.h"
  3. #include <QFile>
  4. #include <QIntValidator>
  5. #include "UIStyleManager.h"
  6. NoiseMonitorParamDialog::NoiseMonitorParamDialog(QWidget *parent) :
  7. DialogBase(parent),
  8. ui(new Ui::NoiseMonitorParamWidget)
  9. {
  10. QWidget* content = new QWidget(this);
  11. ui->setupUi(content);
  12. m_logger = spdlog::get("ACASetting");
  13. if(m_logger == nullptr)
  14. {
  15. fmt::print("NoiseMonitorParamDialog: Logger ACASetting not found\n");
  16. return;
  17. }
  18. /* 设置弹窗内容 */
  19. setContentWidget(content);
  20. /* 设置弹窗标题 */
  21. setTitle("噪音监测参数");
  22. /* 设置lineEdit输入限制 */
  23. ui->lineEdit_noiseDetectContinueCount->setValidator(new QIntValidator(1, 100, this));
  24. ui->lineEdit_noiseContinueCountIsWarn->setValidator(new QIntValidator(1, 10, this));
  25. ui->lineEdit_noiseContinueCountPercent->setValidator(new QIntValidator(1, 100, this));
  26. ui->lineEdit_freqComponentMini->setValidator(new QIntValidator(this));
  27. ui->lineEdit_freqComponentMax->setValidator(new QIntValidator(this));
  28. ui->lineEdit_oneDBThreshold->setValidator(new QDoubleValidator(0.0, 1.0, 2, this));
  29. ui->lineEdit_oneDBComponentMini->setValidator(new QIntValidator(-30, 30, this));
  30. ui->lineEdit_noiseThreahold->setValidator(new QDoubleValidator(0.0, 1.0, 2, this));
  31. ui->lineEdit_noiseComponentMini->setValidator(new QIntValidator(-30, 30, this));
  32. ui->lineEdit_noiseDetectDuration->setValidator(new QIntValidator(this));
  33. ui->lineEdit_noiseDetectPercent->setValidator(new QIntValidator(1, 100, this));
  34. ui->lineEdit_noiseDBMax->setValidator(new QIntValidator(this));
  35. /* 设置qss */
  36. setQss();
  37. }
  38. NoiseMonitorParamDialog::~NoiseMonitorParamDialog()
  39. {
  40. delete ui;
  41. }
  42. /* 设置初始参数 */
  43. void NoiseMonitorParamDialog::setInitialParams(NoiseDetectParam_t& noiseDetectParam)
  44. {
  45. m_noiseDetectParam = noiseDetectParam;
  46. /* 设置初始参数到界面 */
  47. ui->lineEdit_registCode->setText(noiseDetectParam.strRegitrationCode);
  48. ui->lineEdit_noiseDetectContinueCount->setText(QString::number(noiseDetectParam.nNoiseDetectContinueCount));
  49. ui->lineEdit_noiseContinueCountIsWarn->setText(QString::number(noiseDetectParam.nNoiseContinueCountIsWarn));
  50. ui->lineEdit_noiseContinueCountPercent->setText(QString::number(noiseDetectParam.nNoiseContinueCountPercent));
  51. ui->lineEdit_freqComponentMini->setText(QString::number(noiseDetectParam.nFreqComponentMini));
  52. ui->lineEdit_freqComponentMax->setText(QString::number(noiseDetectParam.nFreqComponentMax));
  53. ui->lineEdit_oneDBThreshold->setText(QString::number(noiseDetectParam.fOneDBThreshold));
  54. ui->lineEdit_oneDBComponentMini->setText(QString::number(noiseDetectParam.nOneDBComponentMini));
  55. ui->lineEdit_noiseThreahold->setText(QString::number(noiseDetectParam.fNoiseThreshold));
  56. ui->lineEdit_noiseComponentMini->setText(QString::number(noiseDetectParam.nNoiseComponentMini));
  57. ui->lineEdit_noiseDetectDuration->setText(QString::number(noiseDetectParam.nNoiseDetectDuration));
  58. ui->lineEdit_noiseDetectPercent->setText(QString::number(noiseDetectParam.nNoiseDetectPercent));
  59. ui->lineEdit_noiseDBMax->setText(QString::number(noiseDetectParam.nNoiseDBMax));
  60. }
  61. /* 设置qss */
  62. void NoiseMonitorParamDialog::setQss()
  63. {
  64. QString qssPath = UIStyle.getQSSPath() + "/noisemonitorparamwidget.qss";
  65. QFile file(qssPath);
  66. if(file.open(QFile::ReadOnly))
  67. {
  68. QString qss = file.readAll();
  69. this->setStyleSheet(qss);
  70. file.close();
  71. }else {
  72. SPDLOG_LOGGER_WARN(m_logger, "无法打开QSS文件: {}", qssPath.toStdString());
  73. }
  74. }
  75. /* 点击了OK */
  76. bool NoiseMonitorParamDialog::isOKClicked()
  77. {
  78. updateNoiseDetectParam();
  79. return true;
  80. }
  81. /* 更新噪音检测参数 */
  82. void NoiseMonitorParamDialog::updateNoiseDetectParam()
  83. {
  84. m_noiseDetectParam.strRegitrationCode = ui->lineEdit_registCode->text();
  85. m_noiseDetectParam.nNoiseDetectContinueCount = ui->lineEdit_noiseDetectContinueCount->text().toInt();
  86. m_noiseDetectParam.nNoiseContinueCountIsWarn = ui->lineEdit_noiseContinueCountIsWarn->text().toInt();
  87. m_noiseDetectParam.nNoiseContinueCountPercent = ui->lineEdit_noiseContinueCountPercent->text().toInt();
  88. m_noiseDetectParam.nFreqComponentMini = ui->lineEdit_freqComponentMini->text().toInt();
  89. m_noiseDetectParam.nFreqComponentMax = ui->lineEdit_freqComponentMax->text().toInt();
  90. m_noiseDetectParam.fOneDBThreshold = ui->lineEdit_oneDBThreshold->text().toFloat();
  91. m_noiseDetectParam.nOneDBComponentMini = ui->lineEdit_oneDBComponentMini->text().toInt();
  92. m_noiseDetectParam.fNoiseThreshold = ui->lineEdit_noiseThreahold->text().toFloat();
  93. m_noiseDetectParam.nNoiseComponentMini = ui->lineEdit_noiseComponentMini->text().toInt();
  94. m_noiseDetectParam.nNoiseDetectDuration = ui->lineEdit_noiseDetectDuration->text().toInt();
  95. m_noiseDetectParam.nNoiseDetectPercent = ui->lineEdit_noiseDetectPercent->text().toInt();
  96. m_noiseDetectParam.nNoiseDBMax = ui->lineEdit_noiseDBMax->text().toInt();
  97. }