From bd26ece77ab215eec7aaecc38709e903ffc8c799 Mon Sep 17 00:00:00 2001 From: SantaSpeen Date: Fri, 21 Mar 2025 20:44:31 +0300 Subject: [PATCH] [+] clean [>] _create_table > create_table --- frames/CTkTableFrame.py | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/frames/CTkTableFrame.py b/frames/CTkTableFrame.py index f303149..5b5d4f4 100644 --- a/frames/CTkTableFrame.py +++ b/frames/CTkTableFrame.py @@ -8,22 +8,23 @@ class CTkTableFrame(ctk.CTkFrame): self._callback = callback self.configure(width=width, height=height) + self.loading_frame = ctk.CTkFrame(self) + self.loading_frame.pack(fill="both", expand=True) + self.clean() - def _create_table(self): - event.call("loading.open") - event.call("loading.set_progress", 0) - event.call("loading.set_text", "Таблица") - - event.call("loading.set_subtext", "очистка") - """Создает таблицу с заголовками и данными, используя параметры из словаря.""" + def clean(self): _old_children = self.winfo_children() for i, widget in enumerate(_old_children): widget.destroy() - event.call("loading.set_progress", (i + 1) / len(_old_children)) + self.loading_frame = ctk.CTkFrame(self) + self.loading_frame.pack(fill="both", expand=True) + def create_table(self): + """Создает таблицу с заголовками и данными, используя параметры из словаря.""" + loading = ctk.CTkLabel(self.loading_frame, text="Загрузка...", font=("Arial", 12)) + loading.pack(fill="both", expand=True) scroll_frame = ctk.CTkScrollableFrame(self) - event.call("loading.set_progress", 0) - event.call("loading.set_subtext", "настройка") + _need_to_pack = [] # Применяем шаблон значений по умолчанию @@ -48,7 +49,6 @@ class CTkTableFrame(ctk.CTkFrame): col["width"] = max_data_width col["align"] = parse_align(col["align"]) - event.call("loading.set_progress", 1) # Заголовки header_frame = ctk.CTkFrame(scroll_frame, fg_color="gray30") _need_to_pack.append((header_frame, {"fill": "x", "padx": 2, "pady": 1})) @@ -59,8 +59,7 @@ class CTkTableFrame(ctk.CTkFrame): ) _need_to_pack.append((header_label, {"side": "left", "padx": 2, "pady": 3})) - event.call("loading.set_progress", 0) - event.call("loading.set_subtext", "подготовка данных") + loading.configure(text="Подготовка данных...") # Данные for row_index, row_data in enumerate(self.data): row_frame = ctk.CTkFrame(scroll_frame, fg_color="gray20", corner_radius=3, height=20) @@ -74,17 +73,11 @@ class CTkTableFrame(ctk.CTkFrame): if self._callback: cell_label.bind("", lambda event, idx=row_index, r=row_data: self._callback({"row_index": idx, "row_data": r})) - if row_index % 2 == 0: - event.call("loading.set_progress", (row_index + 1) / len(self.data)) - - event.call("loading.set_progress", 0) - event.call("loading.set_subtext", "отрисовка данных") + loading.configure(text="Отрисовка данных...") for i, (widget, pack_params) in enumerate(_need_to_pack): - if i % 2 == 0: - event.call("loading.set_progress", (i + 1) / len(_need_to_pack)) widget.pack(**pack_params) scroll_frame.pack(fill="both", expand=True, padx=5, pady=5) - event.call("loading.close") + self.loading_frame.destroy() def edit(self, row_index, new_data): """Редактирует строку по индексу.""" @@ -99,4 +92,5 @@ class CTkTableFrame(ctk.CTkFrame): def redraw(self): """Перерисовывает таблицу.""" - self._create_table() + self.clean() + self.create_table()