tkinter 鼠标悬停在控件上面显示提示信息

记录 鼠标悬停在控件上面显示提示信息,在控件上面移动,提示信息跟随移动。2024-08-14 CSDN

1、效果

上效果图!

在控件上面移动,提示信息也会跟随移动,直到移出控件范围。

效果图

2、代码

demo.py


import tkinter as tk  

  
class TipBox:  

    def __init__(self, widget, text='默认信息', bg='#fafdc2'):  
        self.widget = widget  
        self.text = text  
        self.bg = bg
        self.tipwindow = None  
        self.x = self.y = 0  
  
        # 绑定鼠标进入和离开事件  
        self.widget.bind("<Enter>", self.enter)  
        self.widget.bind("<Leave>", self.leave)  
        self.widget.bind("<Motion>", self.update_position)  
  
    def enter(self, e=None):  
        # 创建提示窗口  
        x = self.widget.winfo_rootx() + self.widget.winfo_width() // 2  
        y = self.widget.winfo_rooty() + self.widget.winfo_height()  
        self.tipwindow = tk.Toplevel(self.widget)  
        self.tipwindow.wm_overrideredirect(True)  # 去边框
        self.tipwindow.wm_attributes("-topmost", 1)  # 置顶 
        self.tipwindow.wm_geometry("+%d+%d" % (x, y))  
  
        label = tk.Label(self.tipwindow, text=self.text, bg=self.bg, relief=tk.SOLID, borderwidth=1)  
        label.pack(ipadx=1)  
  
    def leave(self, e=None):
        # 销毁提示窗口  
        if self.tipwindow:  
            self.tipwindow.destroy()  
        
    def update_position(self, e=None):  
    	if self.tipwindow:  
	        # 更新提示窗口的位置,使其跟随鼠标  
	        x = e.x_root + 20  
	        y = e.y_root + 20  
	        # 更新窗口位置  
	        self.tipwindow.geometry("+%d+%d" % (x, y))
  
root = tk.Tk()  

button = tk.Button(root, text="把鼠标放上来看看")  
button.pack(pady=20)  
  
# 创建提示信息框
TipBox(button, "看,我就是提示信息的文字,哈哈哈!")  

'''
转载请附上原文出处;能帮助到你,请留下一个赞,谢谢!
'''

root.mainloop()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只为你开心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值