From c039e9bf61d4675827dd0ed2a77329a9e71ed054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B5=B7?= Date: Thu, 26 Mar 2026 20:07:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AC=A6=E5=90=88=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BA=8B=E4=BB=B6ID=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DataProcessWorkPool.cpp | 4 +- .../MeasureAnalysisHistoryForm.cpp | 58 ++++++++++++++++++- 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/src/DataProcessWorkPool.cpp b/src/DataProcessWorkPool.cpp index f2fd73b..b9f6fc0 100644 --- a/src/DataProcessWorkPool.cpp +++ b/src/DataProcessWorkPool.cpp @@ -499,17 +499,17 @@ bool CoincidenceEventAnalysisTask::processTask() project_dir.mkpath(coincidence_data_dir_name); const QString& coincidence_data_dir_path = project_dir.filePath(coincidence_data_dir_name); QMap > coincidence_data_out_stream_map; + unsigned long long event_id = 0; for (const CoincidenceEvent& event : events) { + ++ event_id; const QString& event_data_filename = QDir(coincidence_data_dir_path).filePath(QStringLiteral(u"[%1ns]%2个粒子符合事件[未刻度].csv").arg(project_model->GetConformTimeWin()).arg(event.coincidence_order)); if ( !coincidence_data_out_stream_map.contains(event.coincidence_order) ) { std::shared_ptr out_stream(new std::ofstream(QStrToSysPath(event_data_filename))); *out_stream << event_id_str << "," << board_id_str << "," << channel_id_str << "," << addr_str << "," << time_str << std::endl; coincidence_data_out_stream_map[event.coincidence_order] = out_stream; } - unsigned long long event_id = 0; std::shared_ptr out_stream = coincidence_data_out_stream_map[event.coincidence_order]; for (const SpectrumData& data_item : event.events) { - ++ event_id; *out_stream << event_id << "," << data_item.board_id << "," << data_item.channel_id << "," << data_item.energy << "," << data_item.timestamp << std::endl; } project_model->SetTimeWinConformParticleData(project_model->GetConformTimeWin(), event.coincidence_order, event_data_filename); diff --git a/src/MeasureAnalysisHistoryForm/MeasureAnalysisHistoryForm.cpp b/src/MeasureAnalysisHistoryForm/MeasureAnalysisHistoryForm.cpp index 3d5cc6e..379f290 100644 --- a/src/MeasureAnalysisHistoryForm/MeasureAnalysisHistoryForm.cpp +++ b/src/MeasureAnalysisHistoryForm/MeasureAnalysisHistoryForm.cpp @@ -1,14 +1,18 @@ #include "MeasureAnalysisHistoryForm.h" +#include "MeasureAnalysisProjectModel.h" #include "ui_MeasureAnalysisHistoryForm.h" +#include +#include -MeasureAnalysisHistoryForm::MeasureAnalysisHistoryForm(QWidget *parent) +MeasureAnalysisHistoryForm::MeasureAnalysisHistoryForm(QWidget* parent) : QWidget(parent) , ui(new Ui::MeasureAnalysisHistoryForm) { ui->setupUi(this); - connect(ui->btn_query, &QPushButton::clicked, [this](){ + connect(ui->btn_query, &QPushButton::clicked, [this]() { queryHistory(); }); + loadHistoryInfo(); } MeasureAnalysisHistoryForm::~MeasureAnalysisHistoryForm() @@ -18,11 +22,59 @@ MeasureAnalysisHistoryForm::~MeasureAnalysisHistoryForm() void MeasureAnalysisHistoryForm::loadHistoryInfo() { + auto row_count = ui->tablew_history->rowCount(); + for (int row = row_count - 1; row >= 0; --row) { + QPushButton* btn_remove_row = dynamic_cast(ui->tablew_history->cellWidget(row, 8)); + if (btn_remove_row) { + ui->tablew_history->removeRow(row); + btn_remove_row->deleteLater(); + } + } + // 遍历可执行文件目录下Projects目录下的所有文件夹,找出所有项目文件夹下的.msproject文件 + QDir projects_dir(QDir(qApp->applicationDirPath()).filePath("Projects")); + if (!projects_dir.exists()) { + return; + } + QList project_dirs = projects_dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + for (const QString& project_dir : project_dirs) { + QDir project_dir_path(projects_dir.path() + "/" + project_dir); + if (project_dir_path.exists()) { + QList msproject_files = project_dir_path.entryList(QStringList({ "*.msproject" })); + if (msproject_files.isEmpty()) { + continue; + } + const QString& project_filename = project_dir_path.filePath(msproject_files.first()); + qDebug() << project_filename; + MeasureAnalysisProjectModel project_model; + project_model.LoadProjectModel(project_filename); + // int row = ui->tablew_history->rowCount(); + // ui->tablew_history->insertRow(row); + // ui->tablew_history->setItem(row, 0, new QTableWidgetItem(channel_name)); + // ui->tablew_history->item(row, 0)->setCheckState(Qt::Unchecked); + // ui->tablew_history->setItem(row, 1, new QTableWidgetItem(QString::number(fit_data_item[0]))); + // ui->tablew_history->setItem(row, 2, new QTableWidgetItem(QString::number(fit_data_item[1]))); + // ui->tablew_history->setItem(row, 3, new QTableWidgetItem(QString::number(fit_data_item[2]))); + // ui->tablew_history->setItem(row, 4, new QTableWidgetItem(QString::number(fit_data_item[3]))); + // ui->tablew_history->setItem(row, 5, new QTableWidgetItem(QString::number(fit_data_item[4]))); + // ui->tablew_history->setItem(row, 6, new QTableWidgetItem(QString::number(fit_data_item[5]))); + // ui->tablew_history->setItem(row, 7, new QTableWidgetItem(QString::number(fit_data_item[6]))); + // QTableWidgetItem* item = new QTableWidgetItem; + // ui->tablew_history->setItem(row, 8, item); + // QPushButton* btn_remove_row = new QPushButton(QStringLiteral(u"删除")); + // btn_remove_row->setMaximumWidth(35); + // connect(btn_remove_row, &QPushButton::clicked, [this, channel_name, item, btn_remove_row]() { + // item->setCheckState(Qt::Unchecked); + // int remove_row = item->row(); + // ui->tablew_history->removeRow(remove_row); + // btn_remove_row->deleteLater(); + // }); + // ui->tablew_history->setCellWidget(row, 8, btn_remove_row); + } + } } void MeasureAnalysisHistoryForm::queryHistory() { const QString& query_text = ui->linedit_query->text(); - }