使用Python制作专属桌面宠物:详细教程!

用Python制作桌宠,嘿咻~ 用Python制作一个简单的桌面宠物,嘿咻~ 阅读详情
AI摘要

本文介绍使用Python和tkinter库创建简单桌面宠物应用的方法。先进行环境准备,安装tkinter和Pillow库,接着说明项目结构,阐述创建主窗口、添加宠物行为和交互功能等实现步骤,展示运行效果,还提及可扩展的功能,最后提供Python学习资料。

包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取!】

在本文中,我们将使用Python创建一个简单的桌面宠物应用。桌面宠物是一种可以在桌面上显示并互动的动画角色,类似于经典的“电子宠物”或“桌面助手”。我们将使用tkinter库来创建窗口和动画,并结合一些简单的逻辑来实现宠物的基本行为。

1. 环境准备
首先,确保你的Python环境中安装了以下库:

tkinter:Python的标准GUI库,用于创建窗口和控件。

Pillow:用于处理图像(如加载和显示宠物图片)。

如果你还没有安装Pillow,可以使用以下命令安装:

pip install pillow

2. 项目结构
我们将创建一个简单的桌面宠物应用,项目结构如下:

desktop_pet/
│
├── main.py          # 主程序入口
├── pet_images/      # 存放宠物图片的文件夹
│   ├── pet_idle.png  # 宠物待机状态的图片
│   ├── pet_walk.png  # 宠物行走状态的图片
│   └── pet_sleep.png # 宠物睡觉状态的图片
└── README.md        # 项目说明文件

3. 实现步骤
3.1 创建主窗口
首先,我们使用tkinter创建一个无边框窗口,并将其设置为始终置顶。

import tkinter as tk

class DesktopPet:
    def __init__(self, root):
        self.root = root
        # 设置窗口无边框
        self.root.overrideredirect(True)
        # 设置窗口背景透明
        self.root.attributes("-transparentcolor", "white")
        # 设置窗口始终置顶
        self.root.attributes("-topmost", True)
        # 设置窗口大小
        self.root.geometry("100x100+500+500")

        # 加载宠物图片
        self.load_images()

        # 创建标签用于显示宠物图片
        self.pet_label = tk.Label(self.root, bg="white")
        self.pet_label.pack()

        # 初始状态为待机
        self.state = "idle"
        self.update()

    def load_images(self):
        # 加载宠物图片
        from PIL import Image, ImageTk
        self.idle_image = ImageTk.PhotoImage(Image.open("pet_images/pet_idle.png"))
        self.walk_image = ImageTk.PhotoImage(Image.open("pet_images/pet_walk.png"))
        self.sleep_image = ImageTk.PhotoImage(Image.open("pet_images/pet_sleep.png"))

    def update(self):
        # 根据状态更新宠物图片
        if self.state == "idle":
            self.pet_label.config(image=self.idle_image)
        elif self.state == "walk":
            self.pet_label.config(image=self.walk_image)
        elif self.state == "sleep":
            self.pet_label.config(image=self.sleep_image)

        # 每隔100毫秒更新一次
        self.root.after(100, self.update)

if __name__ == "__main__":
    root = tk.Tk()
    pet = DesktopPet(root)
    root.mainloop()

3.2 添加宠物行为
接下来,我们为宠物添加一些简单的行为,例如随机移动和状态切换。

import random

class DesktopPet:
    def __init__(self, root):
        # ...(省略之前的代码)

        # 初始化宠物位置
        self.x = 500
        self.y = 500
        self.root.geometry(f"100x100+{self.x}+{self.y}")

        # 初始化状态切换时间
        self.state_change_time = 5000  # 5秒切换一次状态
        self.last_state_change = 0

        # 开始更新行为
        self.update_behavior()

    def update_behavior(self):
        # 随机切换状态
        current_time = self.root.after_idle(self.root.after, 0)
        if current_time - self.last_state_change > self.state_change_time:
            self.state = random.choice(["idle", "walk", "sleep"])
            self.last_state_change = current_time

        # 根据状态执行行为
        if self.state == "walk":
            self.move_randomly()

        # 每隔100毫秒更新一次行为
        self.root.after(100, self.update_behavior)

    def move_randomly(self):
        # 随机移动宠物
        self.x += random.randint(-10, 10)
        self.y += random.randint(-10, 10)
        self.root.geometry(f"100x100+{self.x}+{self.y}")

    # ...(省略之前的代码)

3.3 添加交互功能
为了让宠物更有趣,我们可以添加一些简单的交互功能,例如点击宠物时切换状态。

class DesktopPet:
    def __init__(self, root):
        # ...(省略之前的代码)

        # 绑定鼠标点击事件
        self.pet_label.bind("<Button-1>", self.on_click)

    def on_click(self, event):
        # 点击宠物时切换状态
        self.state = random.choice(["idle", "walk", "sleep"])
        self.update()

    # ...(省略之前的代码)

3.4 完整代码
以下是完整的代码:

import tkinter as tk
from PIL import Image, ImageTk
import random

class DesktopPet:
    def __init__(self, root):
        self.root = root
        # 设置窗口无边框
        self.root.overrideredirect(True)
        # 设置窗口背景透明
        self.root.attributes("-transparentcolor", "white")
        # 设置窗口始终置顶
        self.root.attributes("-topmost", True)
        # 设置窗口大小
        self.root.geometry("100x100+500+500")

        # 初始化宠物位置
        self.x = 500
        self.y = 500

        # 加载宠物图片
        self.load_images()

        # 创建标签用于显示宠物图片
        self.pet_label = tk.Label(self.root, bg="white")
        self.pet_label.pack()

        # 初始状态为待机
        self.state = "idle"
        self.update()

        # 初始化状态切换时间
        self.state_change_time = 5000  # 5秒切换一次状态
        self.last_state_change = 0

        # 绑定鼠标点击事件
        self.pet_label.bind("<Button-1>", self.on_click)

        # 开始更新行为
        self.update_behavior()

    def load_images(self):
        # 加载宠物图片
        self.idle_image = ImageTk.PhotoImage(Image.open("pet_images/pet_idle.png"))
        self.walk_image = ImageTk.PhotoImage(Image.open("pet_images/pet_walk.png"))
        self.sleep_image = ImageTk.PhotoImage(Image.open("pet_images/pet_sleep.png"))

    def update(self):
        # 根据状态更新宠物图片
        if self.state == "idle":
            self.pet_label.config(image=self.idle_image)
        elif self.state == "walk":
            self.pet_label.config(image=self.walk_image)
        elif self.state == "sleep":
            self.pet_label.config(image=self.sleep_image)

        # 每隔100毫秒更新一次
        self.root.after(100, self.update)

    def update_behavior(self):
        # 随机切换状态
        current_time = self.root.after_idle(self.root.after, 0)
        if current_time - self.last_state_change > self.state_change_time:
            self.state = random.choice(["idle", "walk", "sleep"])
            self.last_state_change = current_time

        # 根据状态执行行为
        if self.state == "walk":
            self.move_randomly()

        # 每隔100毫秒更新一次行为
        self.root.after(100, self.update_behavior)

    def move_randomly(self):
        # 随机移动宠物
        self.x += random.randint(-10, 10)
        self.y += random.randint(-10, 10)
        self.root.geometry(f"100x100+{self.x}+{self.y}")

    def on_click(self, event):
        # 点击宠物时切换状态
        self.state = random.choice(["idle", "walk", "sleep"])
        self.update()

if __name__ == "__main__":
    root = tk.Tk()
    pet = DesktopPet(root)
    root.mainloop()

4. 运行效果
运行代码后,你会看到一个无边框的窗口显示在桌面上,窗口中的宠物会根据状态切换图片,并且会随机移动。点击宠物时,它的状态会发生变化。

5. 扩展功能
你可以进一步扩展这个桌面宠物应用,例如:

添加更多状态和动画。

实现宠物跟随鼠标移动的功能。

添加音效或语音交互。

将宠物保存为可执行文件,方便分享。

总结
通过本文的教程,你已经学会了如何使用Python和tkinter创建一个简单的桌面宠物应用。希望这个项目能激发你的创造力,制作出更多有趣的桌面宠物!

最后:
希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利
最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

包含编程资料、学习路线图、源代码、软件安装包等!【点击这里领取!】
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习

在这里插入图片描述

Python实现桌面挂件,做一只可爱的桌面宠物~ 既然要写个桌面宠物,首先当然是要找宠物的图片素材啦。这里我们使用的是来自shimiji这款手机APP上的宠物图片素材,例如皮卡丘:我下了大约60多种宠物的图片素材供大家选择需要源码和素材的可以直接点击在相关文件里都打包一起提供了接下来,我们就可以开始设计我们的桌面宠物啦。鉴于网上用python写的桌面挂件基本都是基于tkinter的,为了突出公众号的与众不同,这里我们采用PyQt5来实现我们的桌面宠物。本来是动态图的不知为何就是展示不出来只能截图给大家看了!!好啦,今天的分享到这里就结束了 ~ 阅读详情

相关推荐

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

今天,我们来分享一个宠物桌面小程序,全程都是通过 PyQT 来制作的,对于 Python GUI 感兴趣的朋友,千万不要错过哦! 我们先来看看最终的效果,对于一个小小的娱乐项目来说,还是不错啦!

y1282037271的博客 6838

用tkinter做一个桌宠

然后,我们定义我们的桌宠应该什么样子。为了让桌宠移动,我们可以使用一个带有透明背景的GIF动画。我们可以使用Image对象和ImageTk.PhotoImage()函数将GIF文件加载到程序中。

weixin_62650212的博客 1452

Python实现桌面宠物

基于PyQt5 import os import cfg import sys import random from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5 import QtWidgets, QtGui '''桌面宠物''' class Deskto...

hxxjxw的博客 1万+

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

今天,我们来分享一个宠物桌面小程序,全程都是通过 PyQT 来制作的,对于 Python GUI 感兴趣的朋友,千万不要错过哦!我们先来看看最终的效果,对于一个小小的娱乐项目来说,还是不错啦!好了,废话不多说,我直接上干货,本项目使用 PYQT5 作为编码框架,如果你对于该框架不是特别熟悉的话,建议先去简单学习一下~

优快云_224022的博客 2837

Python美化桌面—自制桌面宠物

嗨嗨,最近就喜欢搞一些花里胡哨的东西这不就开始折腾我的电脑了吗浅浅搞个桌面小挂件(桌面宠物)既然要写个桌面宠物,首先当然是要找宠物的图片素材啦。这里我们使用的是来自shimiji这款手机APP上的宠物图片素材,例如皮卡丘…我下了大约60多种宠物的图片素材供大家选择如果需要皮卡丘的话在第三十个文件夹里面素材点击此处即可领取在相关文件里都打包一起提供了接下来,我们就可以开始设计我们的桌面宠物啦。鉴于网上用python写的桌面挂件基本都是基于tkinter的,为了突出公众号的与众不同,这里我们采用。

aliYz的博客 9852

桌面宠物 ② 通过js制作属于自己的web网页宠物

web网页宠物的动画效果的实现,也是由一个个GIF图拼接而成,我们同样需要准备多组GIF动图来实现网页宠物的动作切换。## 1.2 素材的获取方法① 素材网站:爱给网、素材巷等。② 通过ps、pr自己制作 :pr制作选择视频输出为GIF图即可,ps则需要一帧一帧的找静态图拼接到一起,具体操作流程看上篇。③ 通过淘宝购买:【淘宝某些商家的资源挺坑的】

zujiasheng的博客 9810

桌面宠物 ① 通过python制作属于自己的桌面宠物

一、桌面宠物素材 1.1 需要准备什么素材 桌面宠物的各种动画效果,可以看作是由一个个GIF动图拼接而成,我们需要准备多组GIF动图来实现桌面宠物的动作切换。 最好选取是白底的GIF动图。 1.2 介绍几种获得GIF白底动图的方式 1.2.1 通过pr实现视频转GIF pr在导出的时候选择动画GIF可以直接导出GIF动图。 当然了想要白底就需要自已用“蒙版”和画笔工具自己抠图了。 1.2.2 通过ps实现图片组转GIF ps会高级一点,首先点击最上方的窗口,再点击时间轴,在时间

zujiasheng的博客 5万+

用python写个桌面挂件 | 手把手带大家做只桌面宠物

既然要写个桌面宠物,首先当然是要找宠物的图片素材啦。这里我们使用的是来自shimiji这款手机APP上的宠物图片素材,例如皮卡丘: 我下了大约60多种宠物的图片素材供大家选择: 在相关文件里都打包一起提供了,所以这里就不分享爬虫代码了(我挑选了一下,只要不是我觉得特别丑的,我基本都保留了),别给人家服务器带来不必要的压力。 接下来,我们就可以开始设计我们的桌面宠物啦。鉴于网上用python写的...

python入门学习进阶教程 4601

Python制作史莱姆桌面宠物!可爱的

在设置界面中勾选"使用自定义GIF图"点击"选择"按钮,选择您喜欢的GIF文件点击"应用"按钮保存设置。

qq_43129878的博客 4892

用Python写个桌面挂件,手把手带你做只桌面宠物~

导语 前段时间有小伙伴留言说想让我带大家写写桌面小挂件,今天就满足一下留过类似言的小伙伴的请求呗~不过感觉写桌面的挂历啥的没意思,就简单带大家做一只桌面宠物吧~ 皮卡丘大家喜欢吗~今天就由做个皮卡丘为例哦!! 相关文件 声明:图片素材源于网络,侵歉删。 开发工具 Python版本:3.6.4 相关模块: PyQt5模块; 以及一些Python自带的模块。 环境搭建安装 Python并添加到环境变量,pip安装需要的相关模块即可。 原理简介 既然要写个桌面宠物,首先当然是要找宠.

L010409的博客 6332

【趣味案例】利用python写个桌面挂件 | 手把手带大家做只桌面宠物

既然要写个桌面宠物,首先当然是要找宠物的图片素材啦。这里我们使用的是来自shimiji这款手机APP上的宠物图片素材,例如皮卡丘: 我下了大约60多种宠物的图片素材供大家选择: 在相关文件里都打包一起提供了,所以这里就不分享爬虫代码了(我挑选了一下,只要不是我觉得特别丑的,我基本都保留了),别给人家服务器带来不必要的压力。 接下来,我们就可以开始设计我们的桌面宠物啦。鉴于网上用python写的...

3911

Python实践项目讲解:如何用制作一个桌面宠物

制作一个桌面宠物(Desktop Pet)在Python中通常涉及多个步骤,包括创建宠物的图形界面、添加动画效果、处理用户交互等。

m0_65482549的博客 5647

python做桌面宠物_如何从零开始制作智能桌宠?

作者 | 李秋键 责编 | maozz出品 | 优快云(ID:优快云news)引言:是否还记得曾经风靡全国的QQ宠物呢,那个又调皮又可爱的QQ企鹅,偶尔还会生病撒娇,需要培养的虚拟宠物,你是否还记得它的样子呢。它是腾讯公司推出的第一款QQ宠物系列游戏,也是运营了很久的系列宠物游戏。该游戏无级别限制,贯穿宠物成长全过程,包括打工、学习、旅游、游戏、结婚、生蛋等。但是该游戏已于2018年9月14日...

weixin_39880615的博客 4650

手把手教你用 Python 做桌面宠物!零基础也能搞定的专属桌宠教程

本文介绍了一个使用Python开发的桌面宠物项目,主要包含以下内容: 功能特点:支持显示动态GIF、拖拽移动、调节透明度和自动播放 开发步骤: 环境准备:安装Python、PyCharm和Pillow库 核心功能搭建:创建透明窗口、右键菜单和控制栏 新增安全功能:文件哈希验证和错误日志记录 实现细节: 动图加载与播放处理 拖拽和缩放功能 配置保存与恢复 打包发布:使用PyInstaller生成exe可执行文件 该项目采用面向对象设计,包含完善的错误处理机制,适合Python初学者学习GUI开发。

u014641860的博客 2342

python桌面宠物_如何从零开始制作智能桌宠?

作者 | 李秋键责编 | maozz引言:是否还记得曾经风靡全国的QQ宠物呢,那个又调皮又可爱的QQ企鹅,偶尔还会生病撒娇,需要培养的虚拟宠物,你是否还记得它的样子呢。它是腾讯公司推出的第一款QQ宠物系列游戏,也是运营了很久的系列宠物游戏。该游戏无级别限制,贯穿宠物成长全过程,包括打工、学习、旅游、游戏、结婚、生蛋等。但是该游戏已于2018年9月14日下架,全服关闭,我们为此感到可惜,但是今天我们...

weixin_39590635的博客 2827

用Python打造一个可爱的桌面宠物

例如,你可以为宠物添加更多的动作和反应,或者使用不同的图片来代表不同的宠物形象。接下来,我们需要创建一个函数,用于在屏幕上显示宠物的图像。你可以在互联网上找到一些可爱的图片,然后将它们保存在你的项目文件夹中。在循环中,我们可以实现一些交互逻辑,例如让宠物在屏幕上随机移动,或者对鼠标点击作出反应。库和一些基本的交互逻辑,我们能够让宠物在屏幕上活动并对用户的操作作出反应。在本文中,我们学习了如何使用Python编程语言创建一个可爱的桌面宠物。,以便在宠物的动作和行为中使用。在上面的代码中,我们使用。

AlianBlank的博客 1682
上一篇: Python引入其他文件夹里的.py文件的方法!
下一篇: Python图片识别脚本:从零开始实现图像识别!
Python_trys
博客等级 码龄2年 4369粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值