用 Python 制作一个桌面宠物,好玩

本文介绍如何利用Python的PyQT5库创建一个桌面宠物小程序。项目包括获取素材图片、设置窗体、随机展示宠物图片、添加宠物动作(如图片切换和上下移动)以及实现右键菜单功能。代码示例展示了如何实现图片导入、动作函数及菜单事件绑定,为Python GUI爱好者提供了一个有趣的实践项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天,我们来分享一个宠物桌面小程序,全程都是通过 PyQT 来制作的,对于 Python GUI 感兴趣的朋友,千万不要错过哦!

我们先来看看最终的效果,对于一个小小的娱乐项目来说,还是不错啦!

本文灵感和部分代码来源于一篇知乎文章

好了,废话不多说,我直接上干货,本项目使用 PYQT5 作为编码框架,如果你对于该框架不是特别熟悉的话,建议先去简单学习一下~

获取素材图片

对于素材图片,我这里也是使用的一款国外的 APP,叫做 shimeji,感兴趣的朋友可以下载体验下。

萝卜哥已经下载好了很多素材,如果需要,文末有获取方式

窗体设置

首先我们先初始化一个 GUI 窗体

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt


class DesktopPet(QWidget):
    tool_name = '桌面宠物'
    def __init__(self, parent=None, **kwargs):
        super(DesktopPet, self).__init__(parent)
        self.index = 0
        self.show()

接下来,由于我们需要只展示图片素材部分,

### Python 桌面宠物 示例代码 #### 使用 Tkinter 创建简单的桌面宠物应用 为了实现一个基本的桌面宠物应用程序,可以采用 `Tkinter` 库来构建图形界面。下面展示的是如何利用该库创建一个小猫作为桌面宠物的应用实例。 ```python import tkinter as tk from PIL import Image, ImageTk import random import time class DesktopPet: def __init__(self, root): self.root = root self.canvas = tk.Canvas(root, width=300, height=400) self.canvas.pack() # 加载并调整图像大小 image_path = "cat.png" img = Image.open(image_path).resize((150, 150), Image.ANTIALIAS) self.pet_image = ImageTk.PhotoImage(img) # 将图像放置到画布上 self.image_container = self.canvas.create_image( 75, 200, anchor=tk.NW, image=self.pet_image) # 定义移动方向向量 self.dx = 1 self.dy = -1 # 开始动画循环 self.move_pet() def move_pet(self): """使宠物在屏幕上随机走动""" canvas_size_x = int(self.canvas['width']) canvas_size_y = int(self.canvas['height']) # 获取当前位置坐标 (x_pos, y_pos) = self.canvas.coords(self.image_container) if x_pos >= canvas_size_x or x_pos <= 0: self.dx *= -1 elif y_pos >= canvas_size_y or y_pos <= 0: self.dy *= -1 # 更新位置 self.canvas.move(self.image_container, self.dx, self.dy) # 设置下一次调用的时间间隔 delay = random.randint(50, 200) self.root.after(delay, self.move_pet) if __name__ == "__main__": window = tk.Tk() pet_app = DesktopPet(window) # 防止窗口被最小化隐藏掉 window.attributes("-topmost", True) window.mainloop() ``` 此段代码展示了怎样通过加载一张静态的小猫图片,并让其在一个指定区域内来回移动模拟行走的效果[^1]。需要注意的是,在实际开发过程中可能还需要考虑更多细节,比如处理不同状态下的动作切换、响应用户的交互操作等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值