36 lines
948 B
Python
36 lines
948 B
Python
import tkinter as tk
|
|
|
|
|
|
class CreateToolTip(object):
|
|
"""
|
|
Create tool tip for a given widget
|
|
"""
|
|
|
|
def __init__(self, widget, text="widget info"):
|
|
self.widget = widget
|
|
self.text = text
|
|
self.widget.bind("<Enter>", self.enter)
|
|
self.widget.bind("<Leave>", self.close)
|
|
self.tw = None
|
|
|
|
def enter(self, event=None):
|
|
x, y, cx, cy = self.widget.bbox("insert")
|
|
x += self.widget.winfo_rootx()
|
|
y += self.widget.winfo_rooty() + 32
|
|
|
|
self.tw = tk.Toplevel(self.widget)
|
|
self.tw.wm_overrideredirect(True)
|
|
self.tw.wm_geometry("+%d+%d" % (x, y))
|
|
label = tk.Label(
|
|
self.tw,
|
|
text=self.text,
|
|
justify=tk.LEFT,
|
|
background="#ffffe6",
|
|
relief="solid",
|
|
borderwidth=1,
|
|
)
|
|
label.pack(ipadx=1)
|
|
|
|
def close(self, event=None):
|
|
if self.tw:
|
|
self.tw.destroy()
|