JALE/jale/gui/tooltip.py
2024-11-28 10:52:57 +01:00

36 lines
1 KiB
Python

import tkinter as tk
class ToolTip:
def __init__(self, widget, text):
self.widget = widget
self.text = text
self.tip_window = None
self.widget.bind("<Enter>", self.show_tooltip)
self.widget.bind("<Leave>", self.hide_tooltip)
def show_tooltip(self, event=None):
if self.tip_window or not self.text:
return
x, y, _, _ = self.widget.bbox("insert")
x = x + self.widget.winfo_rootx() + 25
y = y + self.widget.winfo_rooty() + 25
self.tip_window = tw = tk.Toplevel(self.widget)
tw.wm_overrideredirect(True)
tw.wm_geometry(f"+{x}+{y}")
label = tk.Label(
tw,
text=self.text,
justify=tk.LEFT,
background="#ffffff",
relief=tk.SOLID,
borderwidth=1,
font=("tahoma", "20", "normal"),
)
label.pack(ipadx=1)
def hide_tooltip(self, event=None):
tw = self.tip_window
self.tip_window = None
if tw:
tw.destroy()