之前看到有人用java写了个live2d的桌面宠物,想用python3试试,但是完全没头绪,搜索了一番也没有答案,有没有大神能帮帮忙提供下思路或者用什么库
我自己就用python写了一个,但是功能单一,就是像楼上说的那样用pyqt5,让窗口透明,只留下控件不透明,然后每个0.1秒刷新一次画面,也就是你需要自己弄图片,相是做动画
但是我看到有人用Qt对接live2d做了一个,功能很齐全,但是需要学习C++,我目前也是正在学习中
现在回复可能有点完,但是我感觉可以用pyqt5库,可以让窗口透明控件不透明(小白的个人意见)
tkinter就够了
这个你先试试看就知道了
```python
from pynput import keyboard
import tkinter as tk
import threading as tg
fi=0
zjx=0
zjy=0
def jz(jk):
kgjn=jk.widget
kgjn.jkx=jk.x
kgjn.jky=jk.y
def gz(gk):
jkj=gk.widget
jx=gk.x-jkj.jkx
jy=gk.y-jkj.jky
if jkj.winfo_x()<c.maxsize()[0] or jkj.winfo_y()<c.maxsize()[1]:
if isinstance(jkj,tk.Wm):
jkj.geometry("+%a+%b"%(jkj.winfo_x()+jx,jkj.winfo_y()+jy))
else:
jkj.place(x=jkj.winfo_x()+jx,y=jkj.winfo_y()+jy)
def bk(bk):
bk.bind("<Button-1>",jz,add="+")
bk.bind("<B1-Motion>",gz,add="+")
def muse(k,menu):
def m(event):
menu.post(event.x+k.winfo_x(),event.y+k.winfo_y())
k.bind('<Button-3>',m)
key=keyboard.Controller()
c=tk.Tk()
maxx,maxy=c.wm_maxsize()
c.geometry("{0}x{1}".format(maxx,maxy))
bk(c)
c.wm_attributes('-topmost',1)
z=tk.IntVar()
z.set("无")
c.overrideredirect(True)
t="#123456"
c.wm_attributes('-transparentcolor',t)
c['bg']=t
maxx,maxy=c.maxsize()
def k2():
c.destroy()
import sys
sys.exit()
def k1():
a.destroy()
a1.destroy()
c.update()
def k(aj):
try:
z.set(aj.char)
except AttributeError:
z.set(aj)
with keyboard.Listener(on_press=k) as l:
l.join()
j=tg.Thread(target=k1)
def k3():
j.start()
m=tk.Menu(c,bg="#ffffff",bd=0,tearoff=0)
m.add_command(label="关闭",command=k2)
w=tk.Label(c,textvariable=z,font=('S2G love',20),bg="#bbbbbb",fg="#ffffff")
w.place(x=100,y=100)
a=tk.Button(c,text="启动",bd=0,command=k3)
a.place(x=350,y=350)
a1=tk.Button(c,bd=0,text="取消",command=k2)
a1.place(x=350,y=380)
bk(a)
bk(a1)
muse(w,m)
c.mainloop()
```