diff --git a/gui_app.py b/gui_app.py index 903ac20..2db690f 100644 --- a/gui_app.py +++ b/gui_app.py @@ -459,11 +459,12 @@ class MainWindow(QMainWindow): self.table_clear_btn = PushButton("清空筛选") self.table_clear_btn.clicked.connect(self._clear_filter_and_selection) search_row.addWidget(self.table_clear_btn) + update_row.addSpacing(20) self.table_export_all_btn = PushButton("导出全部") self.table_export_all_btn.clicked.connect(self.export_all_rows) search_row.addWidget(self.table_export_all_btn) self.table_select_count = QLabel("已选: 0") - self.table_select_count.setStyleSheet("color: #666; font-size: 10px;") + self.table_select_count.setStyleSheet("color: #666; font-weight: bold;") search_row.addWidget(self.table_select_count) table_layout.addLayout(search_row) @@ -2026,10 +2027,10 @@ class MainWindow(QMainWindow): def _update_status_statistics(self): """更新状态统计(成功/失败/待执行数量)- 统计所有配置的真实状态 - 待执行:所有状态不是"已完成"的数据(包括"待执行"和"失败"的),表示还需要处理的任务数 + 待执行:勾选的且状态不是"已完成"的数据,表示用户选择要处理的任务数 执行中:只有在任务运行时才有值,任务完成后为0 成功:状态为"已完成"的数据数量 - 失败:状态为"失败"的数据数量 + 失败:状态为"失败/跳过/过期"的数据数量 """ if not hasattr(self, 'configs') or not self.configs: self.set_status_cards(pending=0, running=0, success=0, failed=0) @@ -2042,13 +2043,19 @@ class MainWindow(QMainWindow): # 统计所有配置的状态(根据数据总量来统计) for config in self.configs: status = config.get('情况', '待执行') + is_checked = config.get('勾选', False) + if "完成" in status or "成功" in status: success_count += 1 - elif "失败" in status or "错误" in status: + elif "失败" in status or "错误" in status or "过期" in status or "跳过" in status: failed_count += 1 - pending_count += 1 # 失败的也算待执行(需要重试) + # 只有勾选的失败项才算待执行 + if is_checked: + pending_count += 1 elif "待" in status or not status: - pending_count += 1 + # 只有勾选的待执行项才算待执行 + if is_checked: + pending_count += 1 # 执行中始终为0(只有任务运行时才会被单独更新) self.set_status_cards(pending=pending_count, running=0, success=success_count, failed=failed_count) @@ -2063,7 +2070,7 @@ class MainWindow(QMainWindow): failed_indices = [] for idx, config in enumerate(self.configs): status = config.get('情况', '') - if "失败" in status or "错误" in status: + if "失败" in status or "错误" in status or "过期" in status or "跳过" in status: failed_indices.append(idx) if not failed_indices: @@ -2104,7 +2111,7 @@ class MainWindow(QMainWindow): failed_configs = [] for config in self.configs: status = config.get('情况', '') - if "失败" in status or "错误" in status: + if "失败" in status or "错误" in status or "过期" in status or "跳过" in status: failed_configs.append(config) return failed_configs @@ -3223,7 +3230,7 @@ class MainWindow(QMainWindow): failed_indices = [] for idx, cfg in enumerate(self.configs): status = cfg.get('情况', '') - if "失败" in status or "错误" in status: + if "失败" in status or "错误" in status or "过期" in status or "跳过" in status: failed_indices.append(idx) if failed_indices: for idx, cfg in enumerate(self.configs): @@ -3264,7 +3271,7 @@ class MainWindow(QMainWindow): status = config.get('情况', '待执行') if "完成" in status or "成功" in status: existing_success += 1 - elif "失败" in status or "错误" in status: + elif "失败" in status or "错误" in status or "过期" in status or "跳过" in status: existing_failed += 1 existing_pending += 1 # 失败的也算待执行 elif "待" in status or not status: @@ -3324,7 +3331,7 @@ class MainWindow(QMainWindow): status = config.get('情况', '待执行') if "完成" in status or "成功" in status: existing_success += 1 - elif "失败" in status or "错误" in status: + elif "失败" in status or "错误" in status or "过期" in status or "跳过" in status: existing_failed += 1 existing_pending += 1 # 失败的也算待执行 elif "待" in status or not status: @@ -3468,6 +3475,9 @@ class MainWindow(QMainWindow): if matching_idx is not None: self._update_table_status(matching_idx, "已跳过(定时过期)", is_config_index=True) self.configs[matching_idx]['情况'] = '已跳过(定时过期)' + # 跳过视为失败,更新失败统计 + self.batch_failed_count = getattr(self, "batch_failed_count", 0) + 1 + self.set_status_cards(failed=self.batch_failed_count) j += 1 continue video_batch.append(f) @@ -3521,6 +3531,9 @@ class MainWindow(QMainWindow): if matching_idx is not None: self._update_table_status(matching_idx, "已跳过(定时过期)", is_config_index=True) self.configs[matching_idx]['情况'] = '已跳过(定时过期)' + # 跳过视为失败,更新失败统计 + self.batch_failed_count = getattr(self, "batch_failed_count", 0) + 1 + self.set_status_cards(failed=self.batch_failed_count) i += 1 continue @@ -3552,6 +3565,9 @@ class MainWindow(QMainWindow): if matching_idx is not None: self._update_table_status(matching_idx, "已跳过(定时过期)", is_config_index=True) self.configs[matching_idx]['情况'] = '已跳过(定时过期)' + # 跳过视为失败,更新失败统计 + self.batch_failed_count = getattr(self, "batch_failed_count", 0) + 1 + self.set_status_cards(failed=self.batch_failed_count) i += 1 continue