优化日志显示

This commit is contained in:
xinzhu.yin
2026-04-21 15:31:48 +08:00
parent 6cc3e55ebb
commit e27312d0a3
22 changed files with 684 additions and 553 deletions

View File

@@ -1,4 +1,4 @@
"""侧边面板(日志 / Local Dimming / 调试Step 6 重构)。"""
"""侧边面板(日志 / Local Dimming / 调试Step 6 重构)。"""
import traceback
import tkinter as tk
@@ -141,7 +141,7 @@ def create_local_dimming_panel(self):
self.ld_clear_btn = ttk.Button(
bottom_frame,
text="🗑️ 清空记录",
text="清空记录",
command=self.clear_ld_records,
bootstyle="danger-outline",
width=12,
@@ -187,7 +187,7 @@ DEBUG_PANEL_CONFIGS = {
"screen_module": {
"window_attr": "debug_window",
"btn_attr": "screen_debug_btn",
"title": "🔧 单步调试面板",
"title": " 单步调试面板",
"window_log_prefix": "",
"data_log_prefix": "屏模组",
"failure_data_label": "调试数据",
@@ -200,7 +200,7 @@ DEBUG_PANEL_CONFIGS = {
"sdr_movie": {
"window_attr": "sdr_debug_window",
"btn_attr": "sdr_debug_btn",
"title": "🔧 SDR 单步调试面板",
"title": " SDR 单步调试面板",
"window_log_prefix": "SDR ",
"data_log_prefix": "SDR",
"failure_data_label": "SDR 调试数据",
@@ -213,7 +213,7 @@ DEBUG_PANEL_CONFIGS = {
"hdr_movie": {
"window_attr": "hdr_debug_window",
"btn_attr": "hdr_debug_btn",
"title": "🔧 HDR 单步调试面板",
"title": " HDR 单步调试面板",
"window_log_prefix": "HDR ",
"data_log_prefix": "HDR",
"failure_data_label": "HDR 调试数据",
@@ -238,7 +238,6 @@ def _toggle_debug_panel(self, test_type):
if existing is not None and existing.winfo_exists():
existing.destroy()
btn.config(text="打开调试面板")
self.log_gui.log(f"{wlp}单步调试面板已关闭")
return
# 创建新窗口
@@ -255,38 +254,40 @@ def _toggle_debug_panel(self, test_type):
# 创建调试面板实例(不要对它调用 pack
debug_panel_instance = PQDebugPanel(debug_container, self)
self.log_gui.log(f"{wlp}单步调试面板实例已创建")
# 重新启用调试(如果有数据)
try:
selected_items = self.get_selected_test_items()
dlp = cfg["data_log_prefix"]
for item_key, debug_key, (cat, sub), data_label, enable_desc in cfg["data_items"]:
if item_key not in selected_items:
continue
data = self.results.get_intermediate_data(cat, sub)
if not data:
if test_type == "screen_module" and item_key == "gamma":
self.log_gui.log(" ✗ 没有可用的灰阶数据")
continue
self.log_gui.log(f" → 加载 {len(data)}{data_label}数据点")
debug_panel_instance.enable_debug(test_type, debug_key, data)
self.log_gui.log(f"{dlp} {enable_desc}已重新启用")
results_obj = getattr(self, "results", None)
if results_obj is None:
self.log_gui.log(f"{dlp} 暂无可用测试结果,面板已打开", level="warning")
else:
for item_key, debug_key, (cat, sub), data_label, enable_desc in cfg["data_items"]:
if item_key not in selected_items:
continue
data = results_obj.get_intermediate_data(cat, sub)
if not data:
if test_type == "screen_module" and item_key == "gamma":
self.log_gui.log("[Error] 没有可用的灰阶数据", level="error")
continue
self.log_gui.log(f" → 加载 {len(data)}{data_label}数据点", level="info")
debug_panel_instance.enable_debug(test_type, debug_key, data)
self.log_gui.log(f"{dlp} {enable_desc}已重新启用", level="success")
except Exception as e:
self.log_gui.log(f"⚠️ 加载{cfg['failure_data_label']}失败: {str(e)}")
self.log_gui.log(traceback.format_exc())
self.log_gui.log(f"加载{cfg['failure_data_label']}失败: {str(e)}", level="error")
self.log_gui.log(traceback.format_exc(), level="error")
btn.config(text="关闭调试面板")
def on_closing():
btn.config(text="打开调试面板")
getattr(self, win_attr).destroy()
self.log_gui.log(f"{wlp}单步调试窗口已关闭")
self.log_gui.log(f"{wlp}单步调试窗口已关闭", level="success")
win.protocol("WM_DELETE_WINDOW", on_closing)
win.update_idletasks()
self.log_gui.log(f"{wlp}单步调试面板已打开(独立窗口)")
self.log_gui.log(f"{wlp}单步调试面板已打开(独立窗口)", level="success")
def toggle_screen_debug_panel(self):