[+] loading phrases

This commit is contained in:
Maxim Khomutov 2025-03-26 13:33:15 +03:00
parent 396f0f47ff
commit 6817ee6a81

View File

@ -11,6 +11,12 @@ def darken_color_rgb(hex_color, amount=30):
return f"#{r:02X}{g:02X}{b:02X}"
class CTkTableFrame(ctk.CTkFrame):
loading_title = "Loading"
loading_phase = "Loading: "
loading_data = "preparing rows..."
loading_draw = "drawing rows..."
def __init__(self, master: ctk.CTk | ctk.CTkToplevel, columns, data: list, callback, settings_callback=None, width=400, height=200, *args, **kwargs):
super().__init__(master, *args, **kwargs)
self.configure(width=width, height=height, fg_color="gray10")
@ -29,7 +35,7 @@ class CTkTableFrame(ctk.CTkFrame):
self._build_header()
self.loading_frame = ctk.CTkFrame(self, bg_color="gray10", fg_color="gray10")
ctk.CTkLabel(self.loading_frame, text="Загрузка...", font=("Arial", 12)).pack(fill="both", expand=True)
ctk.CTkLabel(self.loading_frame, text=self.loading_title, font=("Arial", 12)).pack(fill="both", expand=True)
self._scroll_frame = ctk.CTkScrollableFrame(self, bg_color="gray10", fg_color="gray10")
@ -110,11 +116,11 @@ class CTkTableFrame(ctk.CTkFrame):
loading = self.loading_frame.winfo_children()[0]
_need_to_pack = []
loading.configure(text="Подготовка данных...")
loading.configure(text=self.loading_phase + self.loading_data)
for row_index, row_data in enumerate(self._data):
_need_to_pack.extend(self._build_row(row_index, row_data))
loading.configure(text="Отрисовка данных...")
loading.configure(text=self.loading_phase + self.loading_draw)
self._scroll_frame.pack_propagate(False) # Отключает перерасчет размеров
for widget, pack_params in _need_to_pack:
widget.pack(**pack_params)
@ -153,7 +159,7 @@ class CTkTableFrame(ctk.CTkFrame):
def clean(self):
self.__clean_table()
self.loading_frame.winfo_children()[0].configure(text="Загрузка...")
self.loading_frame.winfo_children()[0].configure(text=self.loading_data)
self.loading_frame.pack(fill="both", expand=True)
self.update_idletasks()