@kadin
To display tooltips in tkinter, you can use the createToolTip
function provided below. This function creates a tooltip and binds it to a widget when the user hovers over it.
Here is the createToolTip
function:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import tkinter as tk class ToolTip: def __init__(self, widget, text): self.widget = widget self.text = text self.tooltip = None self.widget.bind("<Enter>", self.on_enter) self.widget.bind("<Leave>", self.on_leave) def on_enter(self, event): x = y = 0 x, y, _, _ = self.widget.bbox("insert") x += self.widget.winfo_rootx() + 25 y += self.widget.winfo_rooty() + 20 self.tooltip = tk.Toplevel(self.widget) self.tooltip.wm_overrideredirect(True) self.tooltip.wm_geometry("+%d+%d" % (x, y)) label = tk.Label(self.tooltip, text=self.text, bg='yellow', relief='solid', borderwidth=1) label.pack(ipadx=1) def on_leave(self, event): if self.tooltip: self.tooltip.destroy() def createToolTip(widget, text): tooltip = ToolTip(widget, text) return tooltip # Example usage root = tk.Tk() button = tk.Button(root, text="Hover over me") button.pack() createToolTip(button, "This is a tooltip") root.mainloop() |
In this code:
You can modify the appearance of the tooltip by changing the background color, border width, text size, etc., in the on_enter
method of the ToolTip
class.