python tkinter實(shí)現(xiàn)鼠標(biāo)懸停提示
展示效果

全部代碼和使用示例
# _*_ coding:utf-8 _*_
import tkinter as tk
import pyautogui
screen_width, screen_height = pyautogui.size()
class WidgetTip:
"""鼠標(biāo)懸停提示"""
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()
# 綁定鼠標(biāo)事件
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 # 內(nèi)邊距 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))
# 創(chuàng)建主窗口
root = tk.Tk()
root.title("鼠標(biāo)懸停提示")
var_str = tk.StringVar()
# 創(chuàng)建一個(gè)按鈕并添加 Tooltip
button = tk.Button(root, text="鼠標(biāo)放這")
button.pack(pady=20)
var_str.set('動(dòng)態(tài)文本按鈕')
button2 = tk.Button(root, text=var_str.get())
button2.pack(pady=20)
var_str.set('這是一條動(dòng)態(tài)文本提示語')
WidgetTip(button, "這是一條提示鼠標(biāo)懸停提示信息")
WidgetTip(button2, var_str)
# 運(yùn)行主循環(huán)
root.mainloop()到此這篇關(guān)于python tkinter實(shí)現(xiàn)鼠標(biāo)懸停提示的文章就介紹到這了,更多相關(guān)python鼠標(biāo)懸停內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python通過pil將圖片轉(zhuǎn)換成黑白效果的方法
這篇文章主要介紹了python通過pil將圖片轉(zhuǎn)換成黑白效果的方法,實(shí)例分析了Python中pil庫的使用技巧,需要的朋友可以參考下2015-03-03
python人工智能算法之人工神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家介紹了python人工智能算法之人工神經(jīng)網(wǎng)絡(luò)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Python3.4 tkinter,PIL圖片轉(zhuǎn)換
我們給大家整理了關(guān)于Python3.4 tkinter,PIL圖片轉(zhuǎn)換的相關(guān)完整代碼,大家可以學(xué)習(xí)測試下。2018-06-06
python代碼實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python代碼實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Python+Turtle實(shí)現(xiàn)繪制勾股樹
畢達(dá)哥拉斯樹,也叫“勾股樹”,是由畢達(dá)哥拉斯根據(jù)勾股定理所畫出來的一個(gè)可以無限重復(fù)的樹形圖形。本文將利用Python中的Turtle庫實(shí)現(xiàn)勾股樹的繪制,感興趣的可以了解一下2023-01-01
python爬蟲實(shí)戰(zhàn)之爬取京東商城實(shí)例教程
這篇文章主要介紹了python爬取京東商城的相關(guān)資料,文中通過爬取一個(gè)實(shí)例頁面進(jìn)行了講解,通過示例代碼和圖文介紹的非常詳細(xì),相信對大家具有一定的參考價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-04-04
對python創(chuàng)建及引用動(dòng)態(tài)變量名的示例講解
今天小編就為大家分享一篇對python創(chuàng)建及引用動(dòng)態(tài)變量名的示例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11

