feat: step13 auto-detect ML vs formula mode like step11, remove manual selector
This commit is contained in:
@ -14,7 +14,7 @@ from src.gui.panels._step_path_resolver import resolve_subdir
|
||||
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QSettings
|
||||
from PyQt5.QtWidgets import (
|
||||
QWidget, QVBoxLayout, QHBoxLayout, QGroupBox, QFormLayout,
|
||||
QLabel, QCheckBox, QPushButton, QLineEdit, QComboBox, QSpinBox,
|
||||
QLabel, QCheckBox, QPushButton, QLineEdit, QSpinBox,
|
||||
QMessageBox, QFileDialog, QProgressBar,
|
||||
)
|
||||
|
||||
@ -34,13 +34,12 @@ class ReportWorkerThread(QThread):
|
||||
error = pyqtSignal(str)
|
||||
|
||||
def __init__(self, work_dir: str, output_dir: Optional[str], report_title: str,
|
||||
enable_ai: bool, report_mode: str = 'ml', ai_maps_limit: int = 999):
|
||||
enable_ai: bool, ai_maps_limit: int = 999):
|
||||
super().__init__()
|
||||
self.work_dir = work_dir
|
||||
self.output_dir = output_dir
|
||||
self.report_title = report_title
|
||||
self.enable_ai = enable_ai
|
||||
self.report_mode = report_mode
|
||||
self.ai_maps_limit = ai_maps_limit
|
||||
|
||||
def run(self):
|
||||
@ -79,7 +78,7 @@ class ReportWorkerThread(QThread):
|
||||
out_path = gen.generate_report(
|
||||
work_dir=self.work_dir,
|
||||
report_title=self.report_title or "水质参数反演分析报告",
|
||||
report_mode=self.report_mode,
|
||||
report_mode='auto',
|
||||
ai_maps_limit=self.ai_maps_limit,
|
||||
on_progress=lambda pct, text: self.progress.emit(int(pct), str(text)),
|
||||
)
|
||||
@ -262,22 +261,7 @@ class Step13ReportPanel(QWidget):
|
||||
""")
|
||||
execute_layout.addWidget(self.progress_bar)
|
||||
|
||||
# 报告模式选择
|
||||
mode_row = QHBoxLayout()
|
||||
mode_row.setContentsMargins(0, 4, 0, 0)
|
||||
mode_row.setSpacing(10)
|
||||
mode_label = QLabel("报告模式:")
|
||||
mode_label.setMinimumWidth(120)
|
||||
mode_label.setMaximumWidth(120)
|
||||
mode_row.addWidget(mode_label)
|
||||
self.report_mode_cb = QComboBox()
|
||||
self.report_mode_cb.addItem("机器学习水质参数反演", "ml")
|
||||
self.report_mode_cb.addItem("水色指数与物理经验公式反演", "formula")
|
||||
self.report_mode_cb.setStyleSheet(common_lineedit_css)
|
||||
mode_row.addWidget(self.report_mode_cb, 1)
|
||||
execute_layout.addLayout(mode_row)
|
||||
|
||||
# AI 专题图分析数量(仅公式模式生效)
|
||||
# AI 专题图分析数量(仅水色指数公式模式生效,ML 模式忽略)
|
||||
ai_maps_row = QHBoxLayout()
|
||||
ai_maps_row.setContentsMargins(0, 0, 0, 0)
|
||||
ai_maps_row.setSpacing(10)
|
||||
@ -288,7 +272,7 @@ class Step13ReportPanel(QWidget):
|
||||
self.ai_maps_spin = QSpinBox()
|
||||
self.ai_maps_spin.setRange(0, 999)
|
||||
self.ai_maps_spin.setValue(999)
|
||||
self.ai_maps_spin.setToolTip("公式报告中启用AI分析的分布图数量上限(0=全部跳过,999=全部分析)")
|
||||
self.ai_maps_spin.setToolTip("公式报告中启用AI分析的分布图数量上限(0=跳过,999=全部分析)")
|
||||
self.ai_maps_spin.setStyleSheet(common_lineedit_css)
|
||||
ai_maps_row.addWidget(self.ai_maps_spin, 1)
|
||||
execute_layout.addLayout(ai_maps_row)
|
||||
@ -430,9 +414,8 @@ class Step13ReportPanel(QWidget):
|
||||
self.progress_bar.setValue(0)
|
||||
self.progress_label.setText("正在准备生成…")
|
||||
|
||||
report_mode = self.report_mode_cb.currentData()
|
||||
ai_maps_limit = self.ai_maps_spin.value()
|
||||
self._report_thread = ReportWorkerThread(wd, out, title, enable_ai, report_mode, ai_maps_limit)
|
||||
self._report_thread = ReportWorkerThread(wd, out, title, enable_ai, ai_maps_limit)
|
||||
self._report_thread.progress.connect(self._on_progress, Qt.QueuedConnection)
|
||||
self._report_thread.finished.connect(self._on_finished, Qt.QueuedConnection)
|
||||
self._report_thread.error.connect(self._on_error, Qt.QueuedConnection)
|
||||
|
||||
Reference in New Issue
Block a user