python tkinter实现鼠标悬停提示
更新时间:2024年11月27日 10:03:14 作者:抬眼已是半生
这篇文章主要为大家详细介绍了python如何使用tkinter控件实现鼠标悬停提示以及提示文本动态展示,文中的示例代码讲解详细,有需要的可以参考下
展示效果
全部代码和使用示例
# _*_ coding:utf-8 _*_ import tkinter as tk import pyautogui screen_width, screen_height = pyautogui.size() class WidgetTip: """鼠标悬停提示""" def __init__(self, widget, text): self.widget = widget self.text = text self.tips_alpha = 1 self.tooltip = tk.StringVar() self.tip_pos = 5 # 消息体 self.tooltip_window = tk.Toplevel() self.init_tips() # 绑定鼠标事件 self.widget.bind("<Enter>", self.enter) self.widget.bind("<Motion>", self.move) self.widget.bind("<Leave>", self.leave) def init_tips(self): """初始化消息框""" self.tooltip_window.attributes("-alpha", 0) self.tooltip_window.attributes("-toolwindow", 1) self.tooltip_window.wm_overrideredirect(True) self.tooltip_window.attributes('-topmost', 100) pad_x = 20 # 内边距 x tk.Label(self.tooltip_window, textvariable=self.tooltip, background="#ffffff", justify=tk.LEFT, relief="solid", borderwidth=0, wraplength=screen_width - pad_x, padx=pad_x, pady=10).pack() def enter(self, event=None): self.tooltip_window.lift() if isinstance(self.text, (tk.StringVar, tk.IntVar, tk.BooleanVar, tk.DoubleVar)): tips_text = str(self.text.get()) else: tips_text = str(self.text) self.tooltip.set(tips_text) self.set_tooltip_window_geometry(event) self.tooltip_window.attributes("-alpha", self.tips_alpha) def move(self, event=None): self.set_tooltip_window_geometry(event) def leave(self, event=None): self.tooltip_window.attributes("-alpha", 0) self.set_tooltip_window_geometry(event) def set_tooltip_window_geometry(self, event): cost_length = event.x_root + self.tip_pos + self.tooltip_window.winfo_width() - screen_width if cost_length < 0: cost_length = 0 self.tooltip_window.geometry("+%d+%d" % (event.x_root + self.tip_pos - cost_length, event.y_root + self.tip_pos)) # 创建主窗口 root = tk.Tk() root.title("鼠标悬停提示") var_str = tk.StringVar() # 创建一个按钮并添加 Tooltip button = tk.Button(root, text="鼠标放这") button.pack(pady=20) var_str.set('动态文本按钮') button2 = tk.Button(root, text=var_str.get()) button2.pack(pady=20) var_str.set('这是一条动态文本提示语') WidgetTip(button, "这是一条提示鼠标悬停提示信息") WidgetTip(button2, var_str) # 运行主循环 root.mainloop()
到此这篇关于python tkinter实现鼠标悬停提示的文章就介绍到这了,更多相关python鼠标悬停内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
tensorflow+k-means聚类简单实现猫狗图像分类的方法
这篇文章主要介绍了tensorflow+k-means聚类简单实现猫狗图像分类,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-04-04python中出现invalid syntax报错的几种原因分析
这篇文章主要介绍了python中出现invalid syntax报错的几种原因分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-02-02
最新评论