refactor(gui/sidebar): 重组导航为四模块 + 扁平无框蓝色高亮主题 + 中括号移除

数据层(panel_registry.py):13 个 step 从「阶段一/二/三/四」重组为四个模块

  模块一 影像预处理(step 1-3)

  模块二 特征工程与数据(step 4-7)

  模块三 模型训练与反演(step 8-10)

  模块四 制图与成果汇编(step 11-13)

step_id 顺序、tab_index、面板绑定、Tab 路由全部保持零变化

文本层(water_quality_gui.py / v2):移除 └─ 字符前缀

样式层(styles.py:get_sidebar_stylesheet):扁平无框 + 蓝色高亮主题

  - 容器 QListWidget 无框化(border: none / outline: none / 透明背景)

  - 步骤项 padding 8px 6px + margin 2px 8px + border-radius 4px

  - hover 极浅蓝灰 #F0F4F8;selected 饱和蓝 #0078D4 + 白字 #FFFFFF

  - 分类头(stage_header):!enabled 选择器锁定 → 蓝色 #0078D4 + 加粗 + 上下间距

Python 代码侧:stage_item.setForeground 硬编码 #0078D4、stage_font.setBold(True)

作为 QSS 失效兜底 + 代码意图自解释

末尾迭代:四个模块名移除 [ ] 中括号(极简风)
This commit is contained in:
DXC
2026-06-23 16:50:30 +08:00
parent 948d1d8acd
commit c5a82ec342
4 changed files with 76 additions and 36 deletions

View File

@ -29,14 +29,14 @@ from src.gui.panels.step13_report_panel import Step13ReportPanel
PANEL_REGISTRY = [
# ═══════════════════════════════════════════════════════════════
# 阶段一:影像预处理
# 模块一 影像预处理
# ═══════════════════════════════════════════════════════════════
{
'step_id': 'step1',
'class_ref': Step1Panel,
'title': '水域掩膜',
'icon': '1.png',
'stage': '阶段一:影像预处理',
'stage': '模块一 影像预处理',
'display_name': '1. 水域掩膜生成',
'dependencies': None,
'constructor_kwargs': None,
@ -46,7 +46,7 @@ PANEL_REGISTRY = [
'class_ref': Step2Panel,
'title': '耀斑检测',
'icon': '2.png',
'stage': '阶段一:影像预处理',
'stage': '模块一 影像预处理',
'display_name': '2. 耀斑区域识别',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名;
# 第三元素 source_attr = 上游源控件真实属性名(panel_factory 回放端使用)
@ -63,7 +63,7 @@ PANEL_REGISTRY = [
'class_ref': Step3Panel,
'title': '耀斑去除',
'icon': '3.png',
'stage': '阶段一:影像预处理',
'stage': '模块一 影像预处理',
'display_name': '3. 耀斑去除与修复',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名
'dependencies': {
@ -76,14 +76,14 @@ PANEL_REGISTRY = [
},
# ═══════════════════════════════════════════════════════════════
# 阶段二:样本数据准备
# 模块二 特征工程与数据
# ═══════════════════════════════════════════════════════════════
{
'step_id': 'step4_sampling',
'class_ref': Step4SamplingPanel,
'title': '采样点布设',
'icon': '4.png',
'stage': '阶段二:样本数据准备',
'stage': '模块二 特征工程与数据',
'display_name': '4. 采样点布设',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名;
# 第三元素 source_attr = 上游源控件真实属性名(panel_factory 回放端使用)
@ -100,7 +100,7 @@ PANEL_REGISTRY = [
'class_ref': Step5CleanPanel,
'title': '数据清洗',
'icon': '5.png',
'stage': '阶段二:样本数据准备',
'stage': '模块二 特征工程与数据',
'display_name': '5. 数据清洗',
# 业务要求保持输入源独立,不自动抓取 step4_sampling 的输出
'dependencies': None,
@ -111,7 +111,7 @@ PANEL_REGISTRY = [
'class_ref': Step6FeaturePanel,
'title': '光谱特征',
'icon': '6.png',
'stage': '阶段二:样本数据准备',
'stage': '模块二 特征工程与数据',
'display_name': '6. 光谱特征提取',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名
'dependencies': {
@ -131,7 +131,7 @@ PANEL_REGISTRY = [
'class_ref': Step7View,
'title': '水质光谱指数计算',
'icon': '7.png',
'stage': '阶段二:样本数据准备',
'stage': '模块二 特征工程与数据',
'display_name': '7. 水质指数计算',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名;
# 第三元素 source_attr = 上游源控件真实属性名
@ -143,14 +143,14 @@ PANEL_REGISTRY = [
},
# ═══════════════════════════════════════════════════════════════
# 阶段三:模型构建与训练
# 模块三 模型训练与反演
# ═══════════════════════════════════════════════════════════════
{
'step_id': 'step8_ml_train',
'class_ref': Step8MlTrainPanel,
'title': '机器学习建模',
'icon': '8.png',
'stage': '阶段三:模型构建与训练',
'stage': '模块三 模型训练与反演',
'display_name': '8. 机器学习建模',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名
'dependencies': {
@ -161,14 +161,14 @@ PANEL_REGISTRY = [
},
# ═══════════════════════════════════════════════════════════════
# 阶段四:预测与成果输出
# 模块三 模型训练与反演(续)→ 模块四 制图与成果汇编
# ═══════════════════════════════════════════════════════════════
{
'step_id': 'step9_ml_predict',
'class_ref': Step9MlPredictPanel,
'title': '机器学习预测',
'icon': '10.png',
'stage': '阶段四:预测与成果输出',
'stage': '模块三 模型训练与反演',
'display_name': '9. 机器学习预测',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名;
# 第三元素 source_attr = 上游源控件真实属性名
@ -183,7 +183,7 @@ PANEL_REGISTRY = [
'class_ref': Step10WatercolorPanel,
'title': '水色指数反演',
'icon': '10.png',
'stage': '阶段四:预测与成果输出',
'stage': '模块三 模型训练与反演',
'display_name': '10. 水色指数反演',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名;
# 第三元素 source_attr = 上游源控件真实属性名
@ -200,7 +200,7 @@ PANEL_REGISTRY = [
'class_ref': Step11MapPanel,
'title': '专题图生成',
'icon': '10.png',
'stage': '阶段四:预测与成果输出',
'stage': '模块四 制图与成果汇编',
'display_name': '11. 专题图生成',
# 架构解耦(2026-06-22):dict 键名 = 下游目标控件真实属性名
'dependencies': {
@ -218,7 +218,7 @@ PANEL_REGISTRY = [
'class_ref': Step12VizPanel,
'title': '可视化',
'icon': '9.png',
'stage': '阶段四:预测与成果输出',
'stage': '模块四 制图与成果汇编',
'display_name': '12. 可视化展示',
'dependencies': None,
'constructor_kwargs': None,
@ -228,7 +228,7 @@ PANEL_REGISTRY = [
'class_ref': Step13ReportPanel,
'title': '报告生成',
'icon': '10.png',
'stage': '阶段四:预测与成果输出',
'stage': '模块四 制图与成果汇编',
'display_name': '13. 分析报告生成',
'dependencies': None,
'constructor_kwargs': {'main_window'}, # 需要注入 main_window=self