From 1410ebfb7f4f735682591309a58a496465e9219c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B5=B7?= Date: Tue, 26 May 2026 19:51:42 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E4=BF=A1=E6=81=AF=202=E3=80=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=90=8E=E5=8F=B0=E4=BB=BB=E5=8A=A1=E7=9B=91=E8=A7=86?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CountRateAnalysisView.cpp | 2 +- src/DataProcessWorkPool.cpp | 81 ++++++++----------- src/MainWindow.cpp | 2 +- src/MeasureAnalysisTreeView.cpp | 4 +- .../ParticleInjectTimeAnalysisView.cpp | 2 +- 5 files changed, 40 insertions(+), 51 deletions(-) diff --git a/src/CountRateAnalysisView/CountRateAnalysisView.cpp b/src/CountRateAnalysisView/CountRateAnalysisView.cpp index 2472d78..988086a 100644 --- a/src/CountRateAnalysisView/CountRateAnalysisView.cpp +++ b/src/CountRateAnalysisView/CountRateAnalysisView.cpp @@ -114,7 +114,7 @@ void CountRateAnalysisView::setData(QVector data) // plot->setAxisScale(QwtPlot::xBottom, 0, x.last()); // plot->setAxisScale(QwtPlot::yLeft,minValue , maxValue); - LOG_INFO(QStringLiteral(u"%1数据读取完毕.").arg(this->GetViewName())); +// LOG_INFO(QStringLiteral(u"[%1]计数率分析数据读取完毕.").arg(this->GetProjectName()).arg(this->GetViewName())); // 刷新绘图 plot->replot(); diff --git a/src/DataProcessWorkPool.cpp b/src/DataProcessWorkPool.cpp index 08ce5b7..79a205f 100644 --- a/src/DataProcessWorkPool.cpp +++ b/src/DataProcessWorkPool.cpp @@ -208,16 +208,16 @@ bool EveryChannelParticleCountDataTask::processEveryChannelParticleData() channel_file_streams.clear(); } catch (const std::runtime_error& e) { const QString& e_what = QString::fromLatin1(e.what()); - QString error = QStringLiteral(u"处理%1发生运行时异常:%2").arg(all_channel_particle_data_filename).arg(e_what); + QString error = QStringLiteral(u"[%1]处理%2发生运行时异常:%3").arg(this->GetProjectName()).arg(all_channel_particle_data_filename).arg(e_what); LOG_ERROR(error) ret_ok = false; } catch (const std::exception& e) { const QString& e_what = QString::fromLatin1(e.what()); - QString error = QStringLiteral(u"处理%1异常:%2").arg(all_channel_particle_data_filename).arg(e_what); + QString error = QStringLiteral(u"[%1]处理%2异常:%3").arg(this->GetProjectName()).arg(all_channel_particle_data_filename).arg(e_what); LOG_ERROR(error) ret_ok = false; } catch (...) { - QString error = QStringLiteral(u"处理%1未知异常.").arg(all_channel_particle_data_filename); + QString error = QStringLiteral(u"[%1]处理%2未知异常.").arg(this->GetProjectName()).arg(all_channel_particle_data_filename); LOG_ERROR(error) ret_ok = false; } @@ -232,7 +232,7 @@ bool EveryChannelParticleCountDataTask::processEveryChannelParticleData() project_model->SetChannelAddressCountDataFilename(it.key(), it.value()); } } - const QString& info = QStringLiteral(u"所有通道粒子计数处理完成."); + const QString& info = QStringLiteral(u"[%1]所有通道粒子计数处理完成.").arg(this->GetProjectName()); LOG_INFO(info); return ret_ok; } @@ -428,11 +428,11 @@ bool ParticleDataSortTask::processEveryChannelParticleData() } catch (const std::exception& e) { const QString& e_what = QString::fromLatin1(e.what()); - QString error = QString(QStringLiteral(u"处理%1异常:%2")).arg(all_channel_particle_data_filename).arg(e_what); + QString error = QStringLiteral(u"[%1]处理%2异常:%3").arg(this->GetProjectName()).arg(all_channel_particle_data_filename).arg(e_what); LOG_ERROR(error); ret_ok = false; } catch (...) { - QString error = QString(QStringLiteral(u"处理%1未知异常.")).arg(all_channel_particle_data_filename); + QString error = QStringLiteral(u"[%1]处理%2未知异常.").arg(this->GetProjectName()).arg(all_channel_particle_data_filename); LOG_ERROR(error); ret_ok = false; } @@ -465,7 +465,7 @@ bool ParticleDataSortByMinimysTask::processEveryChannelParticleData() proc.waitForFinished(-1); if (proc.exitCode() != 0) { QString process_error = QString(proc.readAllStandardError()); - QString error = QStringLiteral(u"处理%1异常:%2").arg(data_filename).arg(process_error); + QString error = QStringLiteral(u"[%1]处理%2异常:%3").arg(this->GetProjectName()).arg(data_filename).arg(process_error); LOG_ERROR(error); ret_ok = false; } @@ -548,10 +548,10 @@ bool CoincidenceEventAnalysisTask::processTask() project_model->SetAntiConformParticleData(project_model->GetConformTimeWin(), anti_event_data_filename); } catch (const std::exception& e) { const QString& e_what = QString::fromUtf8(e.what()); - LOG_WARN(QStringLiteral(u"粒子符合数据处理异常:%1").arg(e_what)); + LOG_WARN(QStringLiteral(u"[%1]粒子符合数据处理异常:%1").arg(this->GetProjectName()).arg(e_what)); return false; } - const QString& info = QStringLiteral(u"粒子符合数据处理完成."); + const QString& info = QStringLiteral(u"[%1]粒子符合数据处理完成.").arg(this->GetProjectName()); LOG_INFO(info); return true; } @@ -614,7 +614,7 @@ bool AutoFindPeaksTask::processTask() arma::mat data; const std::string data_filename = QStrToSysPath(ch_count_data_filename); if (!data.load(data_filename, arma::csv_ascii)) { - QString error = QString(QStringLiteral(u"%1自动寻峰数据加载异常!")).arg(ch_count_data_name); + QString error = QStringLiteral(u"[%1]%2自动寻峰数据加载异常!").arg(this->GetProjectName()).arg(ch_count_data_name); LOG_WARN(error); continue; } @@ -622,7 +622,7 @@ bool AutoFindPeaksTask::processTask() try { peak_info_vec = FindPeaksBySvd().FindPeaks(data, this->_step_win_width); } catch (const std::string& e) { - QString error = QString(QStringLiteral(u"%1自动寻峰异常:%2!")).arg(ch_count_data_name).arg(QString::fromStdString(e)); + QString error = QStringLiteral(u"[%1]%2自动寻峰异常:%3!").arg(this->GetProjectName()).arg(ch_count_data_name).arg(QString::fromStdString(e)); LOG_WARN(error); continue; } @@ -639,10 +639,10 @@ bool AutoFindPeaksTask::processTask() << width << "," << height << "," << fwhm << "," << area << "\n"; } } else { - const QString& error = QStringLiteral(u"%1自动寻峰异常!").arg(ch_count_data_name); + const QString& error = QStringLiteral(u"[%1]%2自动寻峰异常!").arg(this->GetProjectName()).arg(ch_count_data_name); LOG_WARN(error); } - const QString& info = QStringLiteral(u"%1自动寻峰完成.").arg(ch_count_data_name); + const QString& info = QStringLiteral(u"[%1]%2自动寻峰完成.").arg(this->GetProjectName()).arg(ch_count_data_name); LOG_INFO(info); } } @@ -654,7 +654,7 @@ bool AutoFindPeaksTask::processTask() } else { project_model->SetAnalysisCustomData(this->_analysis_type, QString("AutoFindPeaksResult"), result_filename); } - const QString& info = QStringLiteral(u"自动寻峰完成."); + const QString& info = QStringLiteral(u"[%1]自动寻峰完成.").arg(this->GetProjectName()); LOG_INFO(info); return true; } @@ -705,17 +705,17 @@ bool ChannelEnergyScaleFittingTask::processTask() try { energy_scale_fit_result_coeffs = GaussPolyCoe::PolynomialFit(vec_x, vec_y1, fit_degree); } catch(const std::exception& e) { - QString error = QString(QStringLiteral(u"%1能量刻度多项式%2次拟合异常:%3!")).arg(channel).arg(fit_degree).arg(QString::fromStdString(e.what())); + QString error = QStringLiteral(u"[%1]%2能量刻度多项式%3次拟合异常:%4!").arg(this->GetProjectName()).arg(channel).arg(fit_degree).arg(QString::fromStdString(e.what())); LOG_WARN(error); } arma::vec fwhm_fit_result_coeffs; try { fwhm_fit_result_coeffs = NolinearLeastSquaresCurveFit::Lsqcurvefit(FwhmModel, vec_y1, vec_y2, { 1.0, 1.0 }); } catch(const std::exception& e) { - QString error = QString(QStringLiteral(u"%1分辨率拟合异常:%2!")).arg(channel).arg(QString::fromStdString(e.what())); + QString error = QStringLiteral(u"[%1]%2分辨率拟合异常:%3!").arg(this->GetProjectName()).arg(channel).arg(QString::fromStdString(e.what())); LOG_WARN(error); } - const QString& info = QStringLiteral(u"%1能量刻度拟合完成.").arg(channel); + const QString& info = QStringLiteral(u"[%1]%2能量刻度拟合完成.").arg(this->GetProjectName()).arg(channel); LOG_INFO(info); std::vector > fit_result_data; @@ -745,7 +745,7 @@ bool ChannelEnergyScaleFittingTask::processTask() return false; } - const QString& info = QStringLiteral(u"能量刻度拟合完成."); + const QString& info = QStringLiteral(u"[%1]能量刻度拟合完成.").arg(this->GetProjectName()); LOG_INFO(info); return true; } @@ -809,10 +809,10 @@ bool EnergyScaleParticleDataTask::processTask() out.close(); std::remove(QStrToSysPath(energy_spectrum_filename).c_str()); const QString& e_what = QString::fromStdString(e.what()); - LOG_WARN(QStringLiteral(u"能谱数据处理异常:%1").arg(e_what)); + LOG_WARN(QStringLiteral(u"[%1]能谱数据处理异常:%1").arg(this->GetProjectName()).arg(e_what)); return false; } - const QString& info = QStringLiteral(u"能谱数据处理完成."); + const QString& info = QStringLiteral(u"[%1]能谱数据处理完成.").arg(this->GetProjectName()); LOG_INFO(info); return true; } @@ -838,12 +838,12 @@ bool EnergyCountProcessTask::processTask() } const QMap& ch_addr_count_filename_list = project_model->GetChannelAddressCountDataFilenameList(); if (ch_addr_count_filename_list.isEmpty()) { - LOG_WARN(QStringLiteral(u"能量计数统计需要的通道道址计数文件异常!")); + LOG_WARN(QStringLiteral(u"[%1]能量计数统计需要的通道道址计数文件异常!").arg(this->GetProjectName())); return false; } const QString& out_path = QDir(project_model->GetProjectDir()).filePath(QStringLiteral(u"能量计数")); if ( !QDir(out_path).mkpath(out_path) ) { - LOG_WARN(QStringLiteral(u"创建能量计数数据目录\"%1\"异常!").arg(out_path)); + LOG_WARN(QStringLiteral(u"[%1]创建能量计数数据目录\"%2\"异常!").arg(this->GetProjectName()).arg(out_path)); return false; } std::string address_str = QString(QStringLiteral(u"道址")).toStdString(); @@ -887,7 +887,7 @@ bool EnergyCountProcessTask::processTask() ch_out.close(); std::remove(QStrToSysPath(ch_out_filename).c_str()); const QString& e_what = QString::fromStdString(e.what()); - LOG_WARN(QStringLiteral(u"%1能量计数异常:%2").arg(channel_name).arg(e_what)); + LOG_WARN(QStringLiteral(u"[%1]%2能量计数异常:%3").arg(this->GetProjectName()).arg(channel_name).arg(e_what)); } } const QString& out_filename = QDir(out_path).filePath(QStringLiteral(u"全通道.csv")); @@ -897,7 +897,7 @@ bool EnergyCountProcessTask::processTask() out << energy << "," << count << "\n"; } project_model->SetAllChannelEnergyTotalCountDataFilename(out_filename); - const QString& info = QStringLiteral(u"能量计数处理完成."); + const QString& info = QStringLiteral(u"[%1]能量计数处理完成.").arg(this->GetProjectName()); LOG_INFO(info); return true; } @@ -965,7 +965,7 @@ bool EnergyScaleCoincidenceDataTask::processTask() data_item.energy = GaussPolyCoe::Predict(coeffs, data_item.energy); out_stream << event_id << "," << data_item.board_id << "," << data_item.channel_id << "," << data_item.energy << "," << data_item.timestamp << "\n" ; } else { - LOG_WARN(QStringLiteral(u"符合能谱数据处理异常:%1能量刻度拟合参数为空!").arg(channel_name)); + LOG_WARN(QStringLiteral(u"[%1]符合能谱数据处理异常:%2能量刻度拟合参数为空!").arg(this->GetProjectName()).arg(channel_name)); // out_stream.close(); // QFile::remove(coincidence_energy_data_filename); // return false; @@ -975,7 +975,7 @@ bool EnergyScaleCoincidenceDataTask::processTask() project_model->SetTimeWinConformEnergyData(time_win, coincidence_order, coincidence_energy_data_filename); } catch (const std::exception& e) { const QString& e_what = QString::fromStdString(e.what()); - LOG_WARN(QStringLiteral(u"符合能谱数据处理异常:%1").arg(e_what)); + LOG_WARN(QStringLiteral(u"[%1]符合能谱数据处理异常:%2").arg(this->GetProjectName()).arg(e_what)); return false; } return true; @@ -989,7 +989,7 @@ bool EnergyScaleCoincidenceDataTask::processTask() } } - const QString& info = QStringLiteral(u"符合能谱数据处理完成."); + const QString& info = QStringLiteral(u"[%1]符合能谱数据处理完成.").arg(this->GetProjectName()); LOG_INFO(info); return true; } @@ -1057,19 +1057,19 @@ bool EnergyScaleaAntiCoincidenceDataTask::processTask() data_item.energy = GaussPolyCoe::Predict(coeffs, data_item.energy); out_stream << time_window << "," << data_item.board_id << "," << data_item.channel_id << "," << data_item.energy << "," << data_item.timestamp << "\n" ; } else { - LOG_WARN(QStringLiteral(u"符合能谱数据处理异常:%1能量刻度拟合参数为空!").arg(channel_name)); + LOG_WARN(QStringLiteral(u"[%1]符合能谱数据处理异常:%2能量刻度拟合参数为空!").arg(this->GetProjectName()).arg(channel_name)); } } out_stream.close(); project_model->SetAntiConformEnergyData(time_win, anti_coincidence_energy_data_filename); } catch (const std::exception& e) { const QString& e_what = QString::fromStdString(e.what()); - LOG_WARN(QStringLiteral(u"反符合能谱数据处理异常:%1").arg(e_what)); + LOG_WARN(QStringLiteral(u"[%1]反符合能谱数据处理异常:%2").arg(this->GetProjectName()).arg(e_what)); return false; } } - const QString& info = QStringLiteral(u"反符合能谱数据处理完成."); + const QString& info = QStringLiteral(u"[%1]反符合能谱数据处理完成.").arg(this->GetProjectName()); LOG_INFO(info); return true; } @@ -1101,24 +1101,15 @@ bool GvfToCsvDataTask::processTask() if (!csvDir.exists()) { if (!csvDir.mkpath(".")) { - m_error = QStringLiteral(u"无法创建输出目录: %1").arg(csvDir.path()); - LOG_ERROR(m_error.toUtf8().constData()); + m_error = QStringLiteral(u"[%1]无法创建输出目录: %2").arg(this->GetProjectName()).arg(csvDir.path()); + LOG_ERROR(m_error); return false; } } - QString testFile = csvDir.filePath(".test_write.tmp"); - QFile test(testFile); - if (!test.open(QIODevice::WriteOnly | QIODevice::Truncate)) { - m_error = QStringLiteral(u"输出目录不可写: %1").arg(csvDir.path()); - LOG_ERROR(m_error.toUtf8().constData()); - return false; - } - test.remove(); - if (m_gvfName.isEmpty() || m_csvName.isEmpty()) { - m_error = "GVF文件路径或CSV输出路径为空"; - LOG_ERROR(m_error.toUtf8().constData()); + m_error = QStringLiteral(u"[%1]GVF文件路径或CSV输出路径为空").arg(this->GetProjectName()); + LOG_ERROR(m_error); return false; } std::unique_ptr gvf2Csv(new GvfToCsv()); @@ -1131,9 +1122,7 @@ bool GvfToCsvDataTask::processTask() } else { m_error = gvf2Csv->getLastError(); m_conversionSuccess = false; - LOG_ERROR(QStringLiteral(u"GVF转换失败: %1") - .arg(m_error) - .toUtf8().constData()); + LOG_ERROR(QStringLiteral(u"[%1]GVF转换失败: %2").arg(this->GetProjectName()).arg(m_error)); } return m_conversionSuccess; diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 0067069..e2bc841 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -308,7 +308,7 @@ void MainWindow::initAction() void MainWindow::initStatusBar() { _w_watcher_task_list = new BackgroundTaskListView(this); - _w_watcher_task_list->setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); + _w_watcher_task_list->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); QPalette palette = _w_watcher_task_list->palette(); palette.setColor(QPalette::Base, Qt::gray); _w_watcher_task_list->setPalette(palette); diff --git a/src/MeasureAnalysisTreeView.cpp b/src/MeasureAnalysisTreeView.cpp index 80ac6e9..5d5baed 100644 --- a/src/MeasureAnalysisTreeView.cpp +++ b/src/MeasureAnalysisTreeView.cpp @@ -146,7 +146,7 @@ void MeasureAnalysisTreeView::onNodeDoubleClicked(const QModelIndex& index) auto file_name_list = project_model->GetChannelEnergyCountDataFilenameList(); if ( !file_name_list.isEmpty() ) { auto ch_num_list = file_name_list.keys(); - for(auto ch_num : ch_num_list) { + foreach(auto ch_num, ch_num_list) { auto file_name = file_name_list[ch_num]; if ( !file_name.isEmpty() ) { data_files_set[QStringLiteral(u"通道%1").arg(ch_num)] = file_name; @@ -312,7 +312,7 @@ void MeasureAnalysisTreeView::onNodeDoubleClicked(const QModelIndex& index) if (!data_files_set.isEmpty()) { view = MeasureAnalysisView::NewAnalyzeView(analysis_type); view->SetProjectName(project_name); - const auto& view_name = QStringLiteral(u"%1[%2]").arg(item_text).arg(project_name); + QString view_name = QStringLiteral(u"%1[%2]").arg(item_text).arg(project_name); view->SetViewName(view_name); view->SetViewDescription(view_name); view->InitViewWorkspace(project_name); diff --git a/src/ParticleInjectTimeView/ParticleInjectTimeAnalysisView.cpp b/src/ParticleInjectTimeView/ParticleInjectTimeAnalysisView.cpp index 03e5d27..1c69a25 100644 --- a/src/ParticleInjectTimeView/ParticleInjectTimeAnalysisView.cpp +++ b/src/ParticleInjectTimeView/ParticleInjectTimeAnalysisView.cpp @@ -142,7 +142,7 @@ void ParticleInjectTimeAnalysisView::updateData(bool b_init_update) _plot->SetAxisInitRange(QwtPlot::yLeft, 0.0f, y_max); _curve->setSamples(x, y); _plot->replot(); - LOG_INFO(QStringLiteral(u"%1数据更新完毕.").arg(this->GetViewName())); + // LOG_INFO(QStringLiteral(u"[%1]例子时间差数据加载完毕.").arg(this->GetProjectName()).arg(this->GetViewName())); _busy_indicator->Stop(); }, Qt::QueuedConnection); }