📅  最后修改于: 2023-12-03 15:05:36.225000             🧑  作者: Mango
Tkinter 是 Python 的标准 GUI 库。在 Tkinter 中, 工具提示是一种非常实用的功能,允许您在用户将鼠标悬停在控件上时显示一个消息。
创建基本工具提示的步骤如下:
以下是一个基本的示例:
import tkinter as tk
class ToolTip:
def __init__(self, widget, text):
self.widget = widget
self.text = text
self.tip_window = None
def show_tip(self):
# 显示工具提示
if self.tip_window or not self.text:
return
x, y, _cx, cy = self.widget.bbox('insert')
x = x + self.widget.winfo_rootx() + 25
y = y + cy + self.widget.winfo_rooty() + 20
self.tip_window = tw = tk.Toplevel(self.widget)
tw.wm_overrideredirect(True)
tw.wm_geometry('+%d+%d' % (x, y))
label = tk.Label(tw, text=self.text, justify=tk.LEFT,
background="#ffffe0", relief=tk.SOLID, borderwidth=1,
font=("tahoma", "8", "normal"))
label.pack(ipadx=1)
def hide_tip(self):
# 隐藏工具提示
if self.tip_window:
self.tip_window.destroy()
self.tip_window = None
def create_tooltip(widget, text):
# 创建工具提示
toolTip = ToolTip(widget, text)
widget.bind('<Enter>', lambda x: toolTip.show_tip())
widget.bind('<Leave>', lambda x: toolTip.hide_tip())
然后用 create_tooltip
函数来创建一个工具提示。
root = tk.Tk()
root.geometry('300x200')
my_label = tk.Label(root, text="Hello, World!")
my_label.pack(pady=20)
create_tooltip(my_label, "This is a tooltip!")
root.mainloop()
当用户将鼠标悬停在标签上时,将会显示出 "This is a tooltip!" 的文本。
创建自定义工具提示包括创建一个带有文本和样式的弹出窗口。下面是一个包含自定义样式的示例:
import tkinter as tk
class ToolTip:
def __init__(self, widget, text, bg="#FFF", fg="#000", font=("Arial", 10)):
self.widget = widget
self.text = text
self.widget.bind("<Enter>", self.show_tip)
self.widget.bind("<Leave>", self.hide_tip)
self.tw = None
self.bg = bg
self.fg = fg
self.font = font
def show_tip(self, event):
x, y = self.widget.winfo_rootx() + 20, self.widget.winfo_rooty() + 20
self.tw = tk.Toplevel(self.widget)
self.tw.attributes("-topmost", "true")
self.tw.overrideredirect(True)
self.tw.geometry("+%d+%d" % (x, y))
self.tw.configure(bg=self.bg)
label = tk.Label(self.tw, text=self.text, justify=tk.LEFT, bg=self.bg,
fg=self.fg, relief=tk.SOLID, borderwidth=1, font=self.font)
label.pack(ipadx=1)
def hide_tip(self, event):
if self.tw:
self.tw.destroy()
def create_tooltip(widget, text, bg="#FFF", fg="#000", font=("Arial", 10)):
toolTip = ToolTip(widget, text, bg, fg, font)
return toolTip
调用 create_tooltip
函数来创建一个带有自定义背景颜色、字体颜色与字体大小的工具提示:
root = tk.Tk()
root.geometry('300x200')
my_label = tk.Label(root, text="Hello, World!")
my_label.pack(pady=20)
tool_tip = create_tooltip(my_label, "This is a tooltip!", bg="lightblue", fg="darkblue", font=("Verdana", 12))
root.mainloop()
当用户将鼠标悬停在标签上时,将会显示出一个带有自定义背景颜色、字体颜色和字体大小的工具提示。
Tkinter 工具提示在创建 GUI 应用程序时是非常重要的,因为它可以使应用程序更加交互和用户友好。使用 tkinter
库中的标准库函数也可以自定义工具提示的样式,以适应不同的应用程序风格。