意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

在Python中如何给鼠标添加多种拖尾的效果

来源:恒创科技 编辑:恒创科技编辑部
2023-12-26 08:31:59
在实际应用中,我们有时候会遇到“在Python中如何给鼠标添加多种拖尾的效果”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“在Python中如何给鼠标添加多种拖尾的效果”文章能帮助大家解决问题。


python-tkinter 实现各种个样的撩妹鼠标拖尾,效果图展示:

系统的拖尾已经无法满足我们了,女朋友叫你把鼠标拖尾换成她的照片,让你时时刻刻都可以看见她,这个要求你答不答应。


在Python中如何给鼠标添加多种拖尾的效果

当然,这个要求还是可以满足一下的,我们来具体看一看吧。

要制作拖尾,首先,我们需要知道鼠标的位置,那有没有获取鼠标位置的方法呢?答案当然是有的。因此,我们引用到pyautogui模块

pip install pyautogui

一、系统拖尾

第一种是最简单的一种,通过设置就可以轻松设置鼠标拖尾,在这里就不详解了。

二、文艺型拖尾

这个拖尾杀伤力不大,侮辱性极强,给自己增加工作buff。

代码如下:

import tkinter,time
from tkinter import *
import pyautogui
​
tk = tkinter.Tk()
tk.overrideredirect(True)
tk["background"] = "white"
tk.wm_attributes('-transparentcolor', 'white')
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
​
cn = Canvas(tk, height=w, width=h, bg="white")
cn.pack()
def update_test(e):
    time.sleep(0.1)
    cn.delete(tkinter.ALL)
    tk.update()
    global a
    x,y=pyautogui.position()#获取鼠标位置
    tk.geometry("180x35+%s+%s" % (x+10, y+10))
    cn.create_text(85, 0, text='我的40米大刀')
tk.bind("<Configure>", update_test)
tk.mainloop()

三、实用型拖尾

这个拖尾,可以帮助你找到你容易忘记的东西,比如一些快捷键,一些工作的事,让它随鼠标移动,随时提醒你。

代码如下:

import tkinter,time
from tkinter import *
import pyautogui
​
tk = tkinter.Tk()
tk.overrideredirect(True)
tk["background"] = "white"
tk.wm_attributes('-transparentcolor', 'white')
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
​
cn = Canvas(tk, height=w, width=h, bg="white")
cn.pack()
def update_test(e):
    time.sleep(0.1)
    cn.delete(tkinter.ALL)
    tk.update()
    global a
    x,y=pyautogui.position()
    tk.geometry("180x35+%s+%s" % (x+10, y+10))
    cn.create_text(85, 0, text='ctrl+c 复制 \n ctrl+v 粘贴', anchor='n')
tk.bind("<Configure>", update_test)
tk.mainloop()

四、爱心拖尾

这个拖尾对于单身人士来说伤害性极大,这满满的爱意,想要找一个人快点脱单。哈哈

import tkinter,time
from tkinter import *
from PIL import ImageTk, Image
import pyautogui
​
tk = tkinter.Tk()
tk.overrideredirect(True)
tk["background"] = "white"
tk.wm_attributes('-transparentcolor', 'white')
​
image1 = Image.open("爱心.jpg")  # 打开图片
image = image1.resize((50,60))  # 设置图片大小
photo = ImageTk.PhotoImage(image)  # 引入图片
​
image2 = Image.open("爱心.jpg")
image3 = image2.resize((101, 121))  # 设置图片大小
photo1 = ImageTk.PhotoImage(image3)  # 引入图片
​
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
​
cn = Canvas(tk, height=w, width=h, bg="white")
cn.pack()
a=2
def update_test(e):
    time.sleep(0.1)
    cn.delete(tkinter.ALL)
    tk.update()
    global a
    x,y=pyautogui.position()
    tk.geometry("100x120+%s+%s" % (x+10, y+10))
    if a==2:
        cn.create_image(50, 50, image=photo1)
        cn.pack()
        a=1
    else:
        cn.create_image(50, 50, image=photo)
        cn.pack()
        a=2
tk.bind("<Configure>", update_test)
tk.mainloop()

五、奔跑的火柴人型拖尾

这个拖尾,可以将图片替换为其他的动作,甚至你还可以直接来上一部动画片都可以。

代码如下:

import tkinter,time
from tkinter import *
from PIL import ImageTk, Image
import pyautogui
​
tk = tkinter.Tk()
tk.overrideredirect(True)
tk.wm_attributes('-transparentcolor', '#E0D9BC')
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
cn = Canvas(tk, height=h, width=w, bg="white")  # bg="pink"
list,list1,a,b=[],[],1,1
for i in range(1,8):
    image1 = Image.open("正向火柴人/123_" + str(i) + ".PNG")  # 打开图片
    image = image1.resize((100, 100))  # 设置图片大小
    photo = ImageTk.PhotoImage(image)  # 引入图片
    list.append(photo)
    image1 = Image.open("反向火柴人/123_" + str(i) + ".PNG")  # 打开图片
    image = image1.resize((100, 100))  # 设置图片大小
    photo = ImageTk.PhotoImage(image)  # 引入图片
    list1.append(photo)
def image(list):
    global a
    for i in range(1, 8):
        if a == 7:
            a = 1
            cn.create_image(50, 50, image=list[0])
            a += 1
        else:
            cn.create_image(50, 50, image=list[a])
            a += 1
        break
​
def update_test(e):
    time.sleep(0.1)
    tk.update()
    x,y=pyautogui.position()
    tk.geometry("100x100+%s+%s"%(x+10,y+10))
    global b
    if x<b:image(list)
    elif x==b:pass
    else:image(list1)
    b=x
    cn.pack()
tk.bind("<Configure>", update_test)
tk.mainloop()

六、胡桃摇钱拖尾

这款拖尾与奔跑的火柴人相似,但又不完全相似,主要是针对单一动画制作。可以让你女朋友为你摆一整套动作,然后移动鼠标时,你就可以看见你女朋友调皮的样子了。

代码如下:

import tkinter,time
from tkinter import *
from PIL import ImageTk, Image
import pyautogui
​
tk = tkinter.Tk()
tk.overrideredirect(True)
tk.wm_attributes('-transparentcolor', '#F7FBFB')
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
cn = Canvas(tk, height=h, width=w, bg="#F7FBFB")
cn.pack()
list,a=[],1
for i in range(1,37):
    image1 = Image.open("胡桃摇钱/胡桃摇钱_" + str(i) + ".JPG")  # 打开图片
    image = image1.resize((100, 100))  # 设置图片大小
    photo = ImageTk.PhotoImage(image)  # 引入图片
    list.append(photo)
​
def update_test(e):
    time.sleep(0.05)
    cn.delete(tkinter.ALL)
    tk.update()
    x,y=pyautogui.position()
    tk.geometry("100x100+%s+%s"%(x+10,y+10))
    global a
    cn.create_image(50, 50, image=list[a])
    a=a+1
    if a==36:a=1
tk.bind("<Configure>", update_test)
tk.mainloop()

七、女朋友或者老婆拖尾

这个就更强了,一定要给你老婆看一看,你要告诉她,你的拖尾都是她。直接占据了整个屏幕。

代码如下:

import tkinter,time
from tkinter import *
from PIL import ImageTk, Image
import pyautogui
​
tk = tkinter.Tk()
tk.overrideredirect(True)
tk.wm_attributes('-transparentcolor', '#F7FBFB')
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
cn = Canvas(tk, height=h, width=w, bg="#F7FBFB")
cn.pack()
​
image1 = Image.open("老婆.png")  # 打开图片
image = image1.resize((200, 300))  # 设置图片大小
photo = ImageTk.PhotoImage(image)  # 引入图片
​
def update_test(e):
    time.sleep(0.05)
    tk.update()
    x,y=pyautogui.position()
    tk.geometry("200x300+%s+%s"%(x+10,y+10))
    cn.create_image(100, 150, image=photo)
tk.bind("<Configure>", update_test)
tk.mainloop()

如果鼠标拖尾有段位,你属于哪个段位


感谢各位的阅读,以上就是“在Python中如何给鼠标添加多种拖尾的效果”的内容了,经过本文的学习后,相信大家对在Python中如何给鼠标添加多种拖尾的效果都有更深刻的体会了吧。这里是恒创科技,小编将为大家推送更多相关知识点的文章,欢迎关注!
上一篇: Canny边缘检测的概念是什么,实现过程是怎样的 下一篇: Tensor的常见操作有哪些,具体用法是怎样的