[^] hide_topbar

This commit is contained in:
Maxim Khomutov 2025-03-19 14:39:37 +03:00
parent 7933ecf2c8
commit cdb1f32de6

View File

@ -1,7 +1,9 @@
from ctypes import windll
from threading import Thread from threading import Thread
from typing import Optional, Union, Tuple from typing import Optional, Union, Tuple
from customtkinter import CTkToplevel, CTkProgressBar, CTkLabel, ThemeManager, CTkFont from customtkinter import CTkToplevel, CTkProgressBar, CTkLabel, ThemeManager, CTkFont
from win32gui import CreateRoundRectRgn, SetWindowRgn
from loguru import logger as _logger from loguru import logger as _logger
logger = _logger.bind(module="CTkLoadingBox", prefix="misc") logger = _logger.bind(module="CTkLoadingBox", prefix="misc")
@ -40,6 +42,12 @@ class CTkLoadingBox(CTkToplevel):
if hide_topbar: if hide_topbar:
self.overrideredirect(True) self.overrideredirect(True)
# Округление окна
hwnd = windll.user32.GetForegroundWindow()
region = CreateRoundRectRgn(0, 0, 300, 300, 150, 150) # Радиус круга
SetWindowRgn(hwnd, region, True)
self.bind("<ButtonPress-1>", self.__start_move)
self.bind("<B1-Motion>", self.__on_move)
self._running: bool = False self._running: bool = False
self._progress = 0 self._progress = 0
@ -59,6 +67,13 @@ class CTkLoadingBox(CTkToplevel):
self.withdraw() self.withdraw()
self._req_events() 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): def _req_events(self):
event.register("loading.open", self.open) event.register("loading.open", self.open)
event.register("loading.close", self.close) event.register("loading.close", self.close)