mirror of
https://github.com/Flowseal/tg-ws-proxy.git
synced 2026-05-22 23:41:44 +03:00
ctk refactoring
This commit is contained in:
@@ -1,7 +1,3 @@
|
||||
"""
|
||||
Всплывающие подсказки для CustomTkinter / tk: задержка, Toplevel без рамки, wrap.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import tkinter as tk
|
||||
@@ -9,8 +5,6 @@ from typing import Any, List, Optional
|
||||
|
||||
|
||||
class CtkTooltip:
|
||||
"""Показ текста при наведении на виджет."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
widget: Any,
|
||||
@@ -31,6 +25,8 @@ class CtkTooltip:
|
||||
widget.bind("<Destroy>", self._on_destroy, add="+")
|
||||
|
||||
def _schedule(self, _event: Any = None) -> None:
|
||||
if self.widget is None:
|
||||
return
|
||||
self._cancel_after()
|
||||
self._after_id = self.widget.after(self.delay_ms, self._show)
|
||||
|
||||
@@ -89,6 +85,7 @@ class CtkTooltip:
|
||||
|
||||
def _on_destroy(self, _event: Any = None) -> None:
|
||||
self._hide()
|
||||
self.widget = None
|
||||
|
||||
|
||||
def _is_windows() -> bool:
|
||||
@@ -104,11 +101,9 @@ def attach_ctk_tooltip(
|
||||
delay_ms: int = 450,
|
||||
wraplength: int = 320,
|
||||
) -> None:
|
||||
"""Повесить подсказку на виджет (CTk или tk)."""
|
||||
CtkTooltip(widget, text, delay_ms=delay_ms, wraplength=wraplength)
|
||||
|
||||
|
||||
def attach_tooltip_to_widgets(widgets: List[Any], text: str, **kwargs: Any) -> None:
|
||||
"""Одна и та же подсказка на несколько виджетов (подпись + поле)."""
|
||||
for w in widgets:
|
||||
attach_ctk_tooltip(w, text, **kwargs)
|
||||
|
||||
Reference in New Issue
Block a user