修改Calman灰阶中结果图显示、修改UI主题样式应用
This commit is contained in:
@@ -10,6 +10,7 @@ import colour
|
||||
import numpy as np
|
||||
|
||||
from app.data_range_converter import convert_pattern_params
|
||||
from app.views.modern_styles import get_theme_palette
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
@@ -28,37 +29,12 @@ def create_custom_template_result_panel(self: "PQAutomationApp"):
|
||||
|
||||
table_container = tk.Frame(
|
||||
self.custom_result_frame,
|
||||
bg="#000000",
|
||||
highlightthickness=1,
|
||||
highlightbackground="#5a5a5a",
|
||||
)
|
||||
table_container.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)
|
||||
self.custom_result_table_container = table_container
|
||||
|
||||
style = ttk.Style()
|
||||
style.configure(
|
||||
"CustomResult.Treeview",
|
||||
background="#000000",
|
||||
fieldbackground="#000000",
|
||||
foreground="#ffffff",
|
||||
rowheight=28,
|
||||
borderwidth=0,
|
||||
)
|
||||
style.configure(
|
||||
"CustomResult.Treeview.Heading",
|
||||
background="#2f2f2f",
|
||||
foreground="#f5f5f5",
|
||||
font=("Microsoft YaHei", 10, "bold"),
|
||||
relief="flat",
|
||||
)
|
||||
style.map(
|
||||
"CustomResult.Treeview",
|
||||
background=[("selected", "#1f4e79")],
|
||||
foreground=[("selected", "#ffffff")],
|
||||
)
|
||||
style.map(
|
||||
"CustomResult.Treeview.Heading",
|
||||
background=[("active", "#3b3b3b")],
|
||||
)
|
||||
_apply_custom_result_theme(self)
|
||||
|
||||
columns = (
|
||||
"Pattern",
|
||||
@@ -157,6 +133,70 @@ def create_custom_template_result_panel(self: "PQAutomationApp"):
|
||||
table_container.grid_columnconfigure(0, weight=1)
|
||||
|
||||
|
||||
def _apply_custom_result_theme(self: "PQAutomationApp"):
|
||||
palette = get_theme_palette()
|
||||
container = getattr(self, "custom_result_table_container", None)
|
||||
if container is not None:
|
||||
container.configure(
|
||||
bg=palette["input_bg"],
|
||||
highlightbackground=palette["border"],
|
||||
highlightcolor=palette["border"],
|
||||
)
|
||||
|
||||
style = ttk.Style()
|
||||
style.configure(
|
||||
"CustomResult.Treeview",
|
||||
background=palette["input_bg"],
|
||||
fieldbackground=palette["input_bg"],
|
||||
foreground=palette["input_fg"],
|
||||
rowheight=28,
|
||||
borderwidth=0,
|
||||
)
|
||||
style.configure(
|
||||
"CustomResult.Treeview.Heading",
|
||||
background=palette["surface_alt_bg"],
|
||||
foreground=palette["muted_fg"],
|
||||
font=("Microsoft YaHei", 10, "bold"),
|
||||
relief="flat",
|
||||
)
|
||||
style.map(
|
||||
"CustomResult.Treeview",
|
||||
background=[("selected", palette["select_bg"])],
|
||||
foreground=[("selected", palette["select_fg"])],
|
||||
)
|
||||
style.map(
|
||||
"CustomResult.Treeview.Heading",
|
||||
background=[("active", palette["surface_hover_bg"])],
|
||||
)
|
||||
|
||||
|
||||
def refresh_custom_template_theme(self: "PQAutomationApp"):
|
||||
"""刷新客户模板结果表的主题色。"""
|
||||
_apply_custom_result_theme(self)
|
||||
|
||||
|
||||
def _set_custom_template_tab_visible(self: "PQAutomationApp", visible: bool):
|
||||
"""控制客户模板结果 TAB 的显示与隐藏。"""
|
||||
if not hasattr(self, "chart_notebook") or not hasattr(self, "custom_template_tab_frame"):
|
||||
return
|
||||
|
||||
tab_id = str(self.custom_template_tab_frame)
|
||||
current_tabs = list(self.chart_notebook.tabs())
|
||||
|
||||
if visible:
|
||||
if tab_id not in current_tabs:
|
||||
self.chart_notebook.add(self.custom_template_tab_frame, text="客户模板结果显示")
|
||||
self.chart_notebook.select(self.custom_template_tab_frame)
|
||||
return
|
||||
|
||||
if tab_id in current_tabs:
|
||||
current_selected = self.chart_notebook.select()
|
||||
self.chart_notebook.forget(self.custom_template_tab_frame)
|
||||
remaining_tabs = list(self.chart_notebook.tabs())
|
||||
if current_selected == tab_id and remaining_tabs:
|
||||
self.chart_notebook.select(remaining_tabs[0])
|
||||
|
||||
|
||||
def show_custom_result_context_menu(self: "PQAutomationApp", event):
|
||||
"""显示客户模板结果右键菜单"""
|
||||
if not hasattr(self, "custom_result_tree") or not hasattr(
|
||||
@@ -322,11 +362,9 @@ def _run_custom_row_single_step(self: "PQAutomationApp", item_id, row_no):
|
||||
time.sleep(self.pattern_settle_time)
|
||||
|
||||
# 测量:显示模式1读取 Tcp/duv/Lv,显示模式8读取 λd/Pe/Lv 与 XYZ。
|
||||
self.ca.set_Display(1)
|
||||
tcp, duv, lv, _, _, _ = self.ca.readAllDisplay()
|
||||
tcp, duv, lv, _, _, _ = self.read_ca_tcp_duv()
|
||||
|
||||
self.ca.set_Display(8)
|
||||
lambda_d, pe, lv, X, Y, Z = self.ca.readAllDisplay()
|
||||
lambda_d, pe, lv, X, Y, Z = self.read_ca_lambda_pe()
|
||||
|
||||
xy = colour.XYZ_to_xy(np.array([X, Y, Z]))
|
||||
u_prime, v_prime, _ = colour.XYZ_to_CIE1976UCS(np.array([X, Y, Z]))
|
||||
@@ -532,9 +570,6 @@ def append_custom_template_result(self: "PQAutomationApp", row_no, result_data):
|
||||
def start_custom_template_test(self: "PQAutomationApp"):
|
||||
"""开始客户模板测试(SDR)"""
|
||||
|
||||
if hasattr(self, "chart_notebook") and hasattr(self, "custom_template_tab_frame"):
|
||||
self.chart_notebook.select(self.custom_template_tab_frame)
|
||||
|
||||
if self.ca is None or self.ucd is None:
|
||||
messagebox.showerror("错误", "请先连接CA410和信号发生器")
|
||||
return
|
||||
@@ -569,8 +604,10 @@ def start_custom_template_test(self: "PQAutomationApp"):
|
||||
self.custom_btn.config(state=tk.NORMAL)
|
||||
self.status_var.set("测试已取消")
|
||||
self.set_custom_result_table_locked(False)
|
||||
_set_custom_template_tab_visible(self, False)
|
||||
return
|
||||
|
||||
_set_custom_template_tab_visible(self, True)
|
||||
self.set_custom_result_table_locked(True)
|
||||
|
||||
self.test_thread = threading.Thread(target=self.run_custom_sdr_test, args=([],))
|
||||
@@ -923,6 +960,7 @@ class CustomTemplatePanelMixin:
|
||||
把本模块的自由函数挂到 PQAutomationApp 上,便于 F12 跳转与类型推断。
|
||||
"""
|
||||
create_custom_template_result_panel = create_custom_template_result_panel
|
||||
_set_custom_template_tab_visible = _set_custom_template_tab_visible
|
||||
show_custom_result_context_menu = show_custom_result_context_menu
|
||||
set_custom_result_table_locked = set_custom_result_table_locked
|
||||
start_custom_row_single_step = start_custom_row_single_step
|
||||
@@ -937,3 +975,4 @@ class CustomTemplatePanelMixin:
|
||||
update_custom_button_visibility = update_custom_button_visibility
|
||||
export_custom_template_excel = export_custom_template_excel
|
||||
export_custom_template_charts = export_custom_template_charts
|
||||
refresh_custom_template_theme = refresh_custom_template_theme
|
||||
|
||||
Reference in New Issue
Block a user