优化UI加载速度
This commit is contained in:
@@ -171,8 +171,32 @@ def create_test_items_content(self: "PQAutomationApp"):
|
||||
},
|
||||
}
|
||||
|
||||
# 根据当前测试类型创建复选框
|
||||
# 预创建各测试类型的复选框,切换时只改显隐与勾选状态,避免重复构建控件。
|
||||
self.test_vars = {}
|
||||
toggle_bootstyle = "success-round-toggle"
|
||||
for type_key, config in self.test_items.items():
|
||||
frame = config["frame"]
|
||||
type_label = ttk.Label(
|
||||
frame,
|
||||
text=self.get_test_type_name(type_key),
|
||||
style="primary.TLabel",
|
||||
)
|
||||
type_label.grid(row=0, column=0, columnspan=2, sticky=tk.W, padx=5, pady=3)
|
||||
config["type_label"] = type_label
|
||||
|
||||
checkbox_vars: dict[str, tk.BooleanVar] = {}
|
||||
for i, (text, var_name) in enumerate(config["items"]):
|
||||
var = tk.BooleanVar(value=False)
|
||||
ttk.Checkbutton(
|
||||
frame,
|
||||
text=text,
|
||||
variable=var,
|
||||
bootstyle=toggle_bootstyle,
|
||||
command=self.update_config_and_tabs,
|
||||
).grid(row=i // 2 + 1, column=i % 2, sticky=tk.W, padx=10, pady=5)
|
||||
checkbox_vars[var_name] = var
|
||||
config["checkbox_vars"] = checkbox_vars
|
||||
|
||||
self.update_test_items()
|
||||
|
||||
# 创建色度参数设置框架
|
||||
@@ -1243,33 +1267,17 @@ def update_test_items(self: "PQAutomationApp"):
|
||||
frame = config["frame"]
|
||||
frame.pack(fill=tk.X, padx=5, pady=5)
|
||||
|
||||
# 添加测试类型标签
|
||||
type_label = ttk.Label(
|
||||
frame,
|
||||
config["type_label"].configure(
|
||||
text=self.get_test_type_name(current_test_type),
|
||||
style="primary.TLabel",
|
||||
)
|
||||
type_label.grid(row=0, column=0, columnspan=2, sticky=tk.W, padx=5, pady=3)
|
||||
|
||||
# 从配置中读取保存的选择状态
|
||||
saved_test_items = self.config.current_test_types[current_test_type].get(
|
||||
"test_items", []
|
||||
)
|
||||
|
||||
# 添加复选框
|
||||
toggle_bootstyle = "success-round-toggle"
|
||||
for i, (text, var_name) in enumerate(config["items"]):
|
||||
is_checked = var_name in saved_test_items
|
||||
var = tk.BooleanVar(value=is_checked)
|
||||
|
||||
for var_name, var in config["checkbox_vars"].items():
|
||||
var.set(var_name in saved_test_items)
|
||||
self.test_vars[f"{current_test_type}_{var_name}"] = var
|
||||
ttk.Checkbutton(
|
||||
frame,
|
||||
text=text,
|
||||
variable=var,
|
||||
bootstyle=toggle_bootstyle,
|
||||
command=self.update_config_and_tabs,
|
||||
).grid(row=i // 2 + 1, column=i % 2, sticky=tk.W, padx=10, pady=5)
|
||||
|
||||
if hasattr(self, "chart_notebook"):
|
||||
self.update_chart_tabs_state()
|
||||
|
||||
Reference in New Issue
Block a user