修复色准结果图偏移

This commit is contained in:
xinzhu.yin
2026-06-09 17:15:54 +08:00
parent 25be4b7f4a
commit 3206079c63
4 changed files with 13 additions and 18 deletions

View File

@@ -335,10 +335,14 @@ def plot_accuracy(self: "PQAutomationApp", accuracy_data, test_type):
fig.patch.set_facecolor(palette["bg"])
# 根据当前画布像素尺寸动态缩放字体,避免窗口缩小时文字挤压重叠
# 先确保色准页签已激活,再读取真实画布尺寸进行动态缩放
font_scale = 1.0
try:
self.chart_notebook.select(self.accuracy_chart_frame)
self.chart_notebook.update_idletasks()
canvas_widget = self.accuracy_canvas.get_tk_widget()
canvas_widget.update_idletasks()
canvas_widget.update()
cw = max(1, int(canvas_widget.winfo_width()))
ch = max(1, int(canvas_widget.winfo_height()))
font_scale = min(cw / 1000.0, ch / 600.0)
@@ -423,11 +427,13 @@ def plot_accuracy(self: "PQAutomationApp", accuracy_data, test_type):
except Exception:
pass
# Select the tab first so the canvas is visible and winfo_width/height
# return real pixel dimensions before the figure is rendered.
# 重新刷新布局并绘制,确保画布尺寸与 notebook tab 对齐。
self.chart_notebook.select(self.accuracy_chart_frame)
self.accuracy_canvas.get_tk_widget().update_idletasks()
canvas_widget = self.accuracy_canvas.get_tk_widget()
canvas_widget.update_idletasks()
canvas_widget.update()
self.accuracy_canvas.draw()
canvas_widget.update_idletasks()
class PlotAccuracyMixin:

View File

@@ -341,9 +341,9 @@ def send_fix_pattern(self: "PQAutomationApp", mode):
self.pattern_service.send_session_pattern(session, 0)
if format_changed:
signal_settle = max(1.0, float(getattr(self, "signal_settle_time", 5.0)))
signal_settle = max(1.0, float(getattr(self, "signal_settle_time", 4.0)))
self.log_gui.log(
f"信号格式已变化,等待电视重新锁定: {signal_settle:.1f}s(可通过 signal_settle_time 调整)",
f"信号格式已变化,等待电视重新锁定: {signal_settle:.1f}s",
level="info",
)
else:

View File

@@ -612,13 +612,10 @@ class PQDebugPanel:
if test_type == "screen_module":
self.screen_frame.pack(fill=tk.BOTH, expand=True)
self.app.log_gui.log("显示屏模组调试面板", level="success")
elif test_type == "sdr_movie":
self.sdr_frame.pack(fill=tk.BOTH, expand=True)
self.app.log_gui.log("显示 SDR 调试面板", level="success")
elif test_type == "hdr_movie":
self.hdr_frame.pack(fill=tk.BOTH, expand=True)
self.app.log_gui.log("显示 HDR 调试面板", level="success")
# ==================== 启用/禁用控制 ====================
@@ -643,39 +640,31 @@ class PQDebugPanel:
if test_item == "gamma":
self.screen_gray_combo.config(state="readonly")
self.screen_test_btn.config(state=tk.NORMAL)
self.app.log_gui.log("屏模组 Gamma 单步调试已启用", level="success")
elif test_item == "rgb":
self.screen_rgb_combo.config(state="readonly")
self.screen_rgb_test_btn.config(state=tk.NORMAL)
self.app.log_gui.log("屏模组 RGB 单步调试已启用", level="success")
elif test_type == "sdr_movie":
if test_item == "gamma":
self.sdr_gray_combo.config(state="readonly")
self.sdr_gamma_test_btn.config(state=tk.NORMAL)
self.app.log_gui.log("SDR Gamma 单步调试已启用", level="success")
elif test_item == "accuracy":
self.sdr_color_combo.config(state="readonly")
self.sdr_accuracy_test_btn.config(state=tk.NORMAL)
self.app.log_gui.log("SDR 色准单步调试已启用", level="success")
elif test_item == "rgb":
self.sdr_rgb_combo.config(state="readonly")
self.sdr_rgb_test_btn.config(state=tk.NORMAL)
self.app.log_gui.log("SDR RGB 单步调试已启用", level="success")
elif test_type == "hdr_movie":
if test_item == "eotf":
self.hdr_gray_combo.config(state="readonly")
self.hdr_eotf_test_btn.config(state=tk.NORMAL)
self.app.log_gui.log("HDR EOTF 单步调试已启用", level="success")
elif test_item == "accuracy":
self.hdr_color_combo.config(state="readonly")
self.hdr_accuracy_test_btn.config(state=tk.NORMAL)
self.app.log_gui.log("HDR 色准单步调试已启用", level="success")
elif test_item == "rgb":
self.hdr_rgb_combo.config(state="readonly")
self.hdr_rgb_test_btn.config(state=tk.NORMAL)
self.app.log_gui.log("HDR RGB 单步调试已启用", level="success")
def disable_all_debug(self):
"""禁用所有单步调试(新测试开始时调用)"""

View File

@@ -1,5 +1,5 @@
{
"current_test_type": "screen_module",
"current_test_type": "sdr_movie",
"test_types": {
"screen_module": {
"name": "屏模组性能测试",