优化UI加载速度
This commit is contained in:
@@ -173,18 +173,25 @@ class PQAutomationApp(
|
||||
side=tk.RIGHT, fill=tk.BOTH, expand=True, padx=5, pady=5
|
||||
)
|
||||
|
||||
# 叠层容器:主界面与工具面板同尺寸叠放,切换时用 lift 而非 pack_forget。
|
||||
self.view_stack = ttk.Frame(self.content_frame)
|
||||
self.view_stack.pack(fill=tk.BOTH, expand=True)
|
||||
self.main_view = ttk.Frame(self.view_stack)
|
||||
self._ld_embedded = False
|
||||
self._view_stack_ready = False
|
||||
|
||||
# 创建右侧内容区域的上中下三个分区
|
||||
self.control_frame_top = ttk.Frame(self.content_frame)
|
||||
self.control_frame_top = ttk.Frame(self.main_view)
|
||||
self.control_frame_top.pack(
|
||||
side=tk.TOP, fill=tk.BOTH, expand=True, padx=0, pady=5
|
||||
)
|
||||
|
||||
self.control_frame_middle = ttk.Frame(self.content_frame)
|
||||
self.control_frame_middle = ttk.Frame(self.main_view)
|
||||
self.control_frame_middle.pack(
|
||||
side=tk.TOP, fill=tk.BOTH, expand=True, padx=0, pady=5
|
||||
)
|
||||
|
||||
self.control_frame_bottom = ttk.Frame(self.content_frame)
|
||||
self.control_frame_bottom = ttk.Frame(self.main_view)
|
||||
self.control_frame_bottom.pack(
|
||||
side=tk.TOP, fill=tk.BOTH, expand=True, padx=0, pady=5
|
||||
)
|
||||
@@ -222,6 +229,7 @@ class PQAutomationApp(
|
||||
self.create_result_chart_frame()
|
||||
# 创建客户模板结果显示区域(黑底表格)
|
||||
self.create_custom_template_result_panel()
|
||||
self.setup_view_stack()
|
||||
# 在所有控件创建完成后,统一初始化测试类型
|
||||
self.root.after(100, self.initialize_default_test_type)
|
||||
|
||||
@@ -406,17 +414,6 @@ class PQAutomationApp(
|
||||
self.signal_tabs.tab(i, state="normal")
|
||||
|
||||
self.signal_tabs.select(target_tab)
|
||||
self.signal_tabs.update()
|
||||
self.root.update_idletasks()
|
||||
|
||||
if target_tab == 0:
|
||||
self.screen_module_signal_frame.tkraise()
|
||||
elif target_tab == 1:
|
||||
self.sdr_signal_frame.tkraise()
|
||||
elif target_tab == 2:
|
||||
self.hdr_signal_frame.tkraise()
|
||||
elif target_tab == 3:
|
||||
self.local_dimming_signal_frame.tkraise()
|
||||
|
||||
for i in range(4):
|
||||
if i != target_tab:
|
||||
@@ -476,7 +473,19 @@ class PQAutomationApp(
|
||||
self._switch_signal_format_tabs(test_type)
|
||||
self._sync_custom_template_tab_visibility(test_type)
|
||||
self.sync_gamut_toolbar()
|
||||
self._restore_charts_for_type(test_type)
|
||||
self._schedule_chart_restore(test_type)
|
||||
|
||||
def _schedule_chart_restore(self, test_type: str) -> None:
|
||||
"""延迟恢复图表,避免阻塞测试类型切换时的 UI 响应。"""
|
||||
job = getattr(self, "_chart_restore_job", None)
|
||||
if job is not None:
|
||||
try:
|
||||
self.root.after_cancel(job)
|
||||
except Exception:
|
||||
pass
|
||||
self._chart_restore_job = self.root.after_idle(
|
||||
lambda tt=test_type: self._restore_charts_for_type(tt)
|
||||
)
|
||||
|
||||
def _save_chart_snapshot(self, test_type: str, chart_name: str, args: tuple):
|
||||
"""保存某次绘图的参数,以便切换测试类型时可以重绘。"""
|
||||
|
||||
Reference in New Issue
Block a user