From cdb1f32de6efca4b45a37874bd57988d3d583761 Mon Sep 17 00:00:00 2001 From: SantaSpeen Date: Wed, 19 Mar 2025 14:39:37 +0300 Subject: [PATCH] [^] hide_topbar --- boxes/CTkLoadingBox.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/boxes/CTkLoadingBox.py b/boxes/CTkLoadingBox.py index 1272dac..f67e014 100644 --- a/boxes/CTkLoadingBox.py +++ b/boxes/CTkLoadingBox.py @@ -1,7 +1,9 @@ +from ctypes import windll from threading import Thread from typing import Optional, Union, Tuple from customtkinter import CTkToplevel, CTkProgressBar, CTkLabel, ThemeManager, CTkFont +from win32gui import CreateRoundRectRgn, SetWindowRgn from loguru import logger as _logger logger = _logger.bind(module="CTkLoadingBox", prefix="misc") @@ -40,6 +42,12 @@ class CTkLoadingBox(CTkToplevel): if hide_topbar: self.overrideredirect(True) + # Округление окна + hwnd = windll.user32.GetForegroundWindow() + region = CreateRoundRectRgn(0, 0, 300, 300, 150, 150) # Радиус круга + SetWindowRgn(hwnd, region, True) + self.bind("", self.__start_move) + self.bind("", self.__on_move) self._running: bool = False self._progress = 0 @@ -59,6 +67,13 @@ class CTkLoadingBox(CTkToplevel): self.withdraw() self._req_events() + def __start_move(self, event): + self.x = event.x + self.y = event.y + + def __on_move(self, event): + self.geometry(f"+{event.x_root - self.x}+{event.y_root - self.y}") + def _req_events(self): event.register("loading.open", self.open) event.register("loading.close", self.close)