优良的定制网站建设,创意网店店铺名字大全,网页怎么赚钱,wordpress建手机版大家好#xff0c;我是小黄。
今天我们使用python实现一个桌面宠物。只需要gif动态图片就行。超级简单容易上手。
#完整源代码可在下方图片免费获取 一#xff1a;下载相关的库文件。
我们本次使用到的库文件为#xff1a;tkinter和pyautogui
下载命令#xff1a;
pip…大家好我是小黄。
今天我们使用python实现一个桌面宠物。只需要gif动态图片就行。超级简单容易上手。
#完整源代码可在下方图片免费获取 一下载相关的库文件。
我们本次使用到的库文件为tkinter和pyautogui
下载命令
pip install tkinter pip install pyautogui
二.我们把gif导入放在DestTop.py同级下面即可。 DeskTop.py(不完整的
import tkinter as tk
import pyautogui as pt
import random
import os
from PIL import Image, ImageTk# 获取主屏幕分辨率
WIDTH, HEIGHT pt.size()
taskbarHeight 40# 将人物大小减少 40%
imgWidth, imgHeight 670, 550# 计算右侧10%区域的起始位置
right_margin int(WIDTH * 0.1)
posX WIDTH - imgWidth - right_margin # 右侧10%区域内的初始X位置
posY 0 # 初始Y位置# 创建主窗口
root tk.Tk()
root.geometry(f{imgWidth}x{imgHeight}{posX}{posY})
root.overrideredirect(1)
root.configure(bgblack)
root.attributes(-transparentcolor, black)
root.wm_attributes(-topmost, 1)# 右键菜单
def create_context_menu(event):context_menu.post(event.x_root, event.y_root)def exit_application():root.quit()context_menu tk.Menu(root, tearoff0)
context_menu.add_command(label退出, commandexit_application)def load_images(file_path):images []try:img Image.open(file_path)for frame in range(img.n_frames): # 使用 Pillow 获取帧数img.seek(frame) # 定位到每一帧images.append(ImageTk.PhotoImage(img.copy())) # 复制当前帧并转换为 PhotoImageexcept Exception as e:print(fError loading frames from {file_path}: {e})return images# 获取当前脚本的目录
current_dir os.path.dirname(os.path.abspath(__file__))# 更新 GIF 文件路径
idleRight load_images(os.path.join(current_dir, bar.gif))
idleLeft load_images(os.path.join(current_dir, bar1.gif))
runRight load_images(os.path.join(current_dir, bar1.gif))
runLeft load_images(os.path.join(current_dir, bar3.gif))
fall load_images(os.path.join(current_dir, bar1.gif))status {0: fall,1: idleRight,2: idleLeft,3: runRight,4: runLeft
}
status_num 0canvas tk.Canvas(root, widthimgWidth, heightimgHeight, bgblack, highlightthickness0)
canvas.pack()player canvas.create_image(imgWidth // 2, imgHeight // 2, imageidleLeft[0])# 说话文本列表
phrases [海鸥别叫啦从今天起我也是漂泊者啊,深山踏红叶耳畔闻鹿鸣,可叹落叶飘零,我很喜欢枫叶可惜枫叶红时总多离别。,拾花鸟之一趣,照月风之长路,闲聊?自然
]def changeStatus():global status_numstatus_num random.randint(1, 4)root.after(random.randint(1000, 5000), changeStatus)def falling():global status_num, posYif root.winfo_y() imgHeight HEIGHT - taskbarHeight:status_num 0posY 10 # 增加每次掉落的高度root.geometry(f{imgWidth}x{imgHeight}{posX}{posY})elif root.winfo_y() imgHeight HEIGHT - taskbarHeight and status_num 0:status_num 1root.after(10, falling) # 保持掉落速度运行效果 打包为exe可执行文件
pyinstaller --onefile --noconsole --exclude-module numpy --exclude-module pandas --add-data 您的绝对路径\\bar.gif;. --add-data 您的绝对路径\\bar1.gif;. --add-data 您的绝对路径\\bar2.gif;. --add-data 您的绝对路径\\bar3.gif;. DestTop.py
完整源代码和gif资料包请下方获取↓↓↓