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鼠标悬停内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现银联支付和支付宝支付接入

    python实现银联支付和支付宝支付接入

    这篇文章主要为大家详细介绍了python实现银联支付和支付宝支付的接入,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • Python 恐龙跑跑小游戏实现流程

    Python 恐龙跑跑小游戏实现流程

    大家好,本篇文章主要讲的是用python实现谷歌小恐龙小游戏,看看这是你断网时的样子么,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • tensorflow+k-means聚类简单实现猫狗图像分类的方法

    tensorflow+k-means聚类简单实现猫狗图像分类的方法

    这篇文章主要介绍了tensorflow+k-means聚类简单实现猫狗图像分类,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Python+PyQT5的子线程更新UI界面的实例

    Python+PyQT5的子线程更新UI界面的实例

    今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python实现绘制多角星实例

    Python实现绘制多角星实例

    这篇文章要给大家分享Python实现绘制多角星的实例,在具备一定的Python编程基础以后,我们可以结合for循环进行多角星的编写,只要简单的几次循环,即可以极大的解决重复编写相同代码方面的问题,下面小编将以三角星,五角星为例,进而引入如何绘制多角星,需要的朋友可以参考一下
    2021-11-11
  • Python编程密码学文件加密与解密代码解析

    Python编程密码学文件加密与解密代码解析

    这篇文章主要为大家介绍了Python编程密码学文件加密与解密,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python中导入模块的几种方式总结

    Python中导入模块的几种方式总结

    模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,下面这篇文章主要给大家介绍了关于Python中导入模块的几种方式,需要的朋友可以参考下
    2022-12-12
  • 解决python列表list中的截取问题

    解决python列表list中的截取问题

    这篇文章主要介绍了解决python列表list中的截取问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python中出现invalid syntax报错的几种原因分析

    python中出现invalid syntax报错的几种原因分析

    这篇文章主要介绍了python中出现invalid syntax报错的几种原因分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • python实现计算器功能

    python实现计算器功能

    这篇文章主要为大家详细介绍了python实现计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10

最新评论