Python制作属于自己的桌面宠物个人文章

桌面宠物的各种动画效果,可以看作是由一个个GIF动图拼接而成,我们需要准备多组GIF动图来实现桌面宠物的动作切换。

最好选取是白底的GIF动图。

2.介绍几种获得GIF动图的方式

2.1通过pr实现视频转GIF

pr在导出的时候选择动画GIF可以直接导出GIF动图。

当然了想要白底就需要自已用“蒙版”和画笔工具自己抠图了。

2.2通过ps实现图片组转GIF

然后选择最上方的文件,选择导出,选择导出为web所用格式旧版,即可

2.3百度一下,获取网上现成的GIF资源

①百度:“制作GIF动图”

②百度“GIF动图资源”

python实现代码

1目录结构

项目的目录结构整体如下:main.py为主程序代码。

normal下的GIF图是宠物平常会随机切换的动作GIF图,click下面的GIF图是点击宠物之后的宠物动作的GIF图

dialog.txt记录了宠物的对话信息

tigerIcon.jpg是缩小到托盘后托盘图标的图片

2实现代码

2.1引用包

os包用于加载文件,sys包用于退出程序,random包用于程序中一些需要调用随机数的操作。其他的三个包则是用于实现桌面宠物的基础。

importosimportsysimportrandomfromPyQt5.QtGuiimport*fromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*2.2主代码部分

整个运行流程为:

(1)通过self.init():实现窗体的初始化,宠物的GIF图在这个窗体中播放。

(2)通过self.initPall():配置托盘化

(3)通过self.initPetImage():将宠物的静态GIF资源,包括对话和GIF动图进行加载

(4)通过self.petNormalAction():实现宠物随机切换动作和语句的功能

classDesktopPet(QWidget):def__init__(self,parent=None,**kwargs):super(DesktopPet,self).__init__(parent)#窗体初始化self.init()#托盘化初始self.initPall()#宠物静态gif图加载self.initPetImage()#宠物正常待机,实现随机切换动作self.petNormalAction()①加载显示GIF动图的窗体,通过函数init实现,其代码配置如下:

这几句的作用是对展示宠物的窗体进行一些初步的设置,使得白色GIF图能够去掉背景的白色,将GIF图透明的展示出来

主要有下面这几个操作:

(1)读取静态图片资源设置托盘化的图标

(2)设置托盘化图片点击右键显示的菜单,并对这些菜单的点击操作进行设置

流程代码如下:

#托盘化设置初始化definitPall(self):#导入准备在托盘化显示上使用的图标icons=os.path.join('tigerIcon.jpg')#设置右键显示最小化的菜单项#菜单项退出,点击后调用quit函数quit_action=QAction('退出',self,triggered=self.quit)#设置这个点击选项的图片quit_action.setIcon(QIcon(icons))#菜单项显示,点击后调用showing函数showing=QAction(u'显示',self,triggered=self.showwin)#新建一个菜单项控件self.tray_icon_menu=QMenu(self)#在菜单栏添加一个无子菜单的菜单项‘退出’self.tray_icon_menu.addAction(quit_action)#在菜单栏添加一个无子菜单的菜单项‘显示’self.tray_icon_menu.addAction(showing)#QSystemTrayIcon类为应用程序在系统托盘中提供一个图标self.tray_icon=QSystemTrayIcon(self)#设置托盘化图标self.tray_icon.setIcon(QIcon(icons))#设置托盘化菜单项self.tray_icon.setContextMenu(self.tray_icon_menu)#展示self.tray_icon.show()其中‘退出’项涉及到的函数代码如下:

#退出操作,关闭程序defquit(self):self.close()sys.exit()其中‘显示’项涉及到的函数代码如下:

#显示宠物defshowwin(self):#setWindowOpacity()设置窗体的透明度,通过调整窗体透明度实现宠物的展示和隐藏self.setWindowOpacity(1)③宠物静态资源的加载,通过函数initPetImage实现,其代码配置如下:

静态资源的加载主要涉及两个部分,对话框内容的加载和图片内容的加载。

#宠物随机位置defrandomPosition(self):#screenGeometry()函数提供有关可用屏幕几何的信息screen_geo=QDesktopWidget().screenGeometry()#获取窗口坐标系pet_geo=self.geometry()width=(screen_geo.width()-pet_geo.width())*random.random()height=(screen_geo.height()-pet_geo.height())*random.random()self.move(width,height)④宠物正常待机,实现随机切换动作,对话框通过函数petNormalAction实现,其代码配置如下

self.pet1和self.dialog在初始化的时候即定义了。这里可以按照自己的喜好进行拓展,用多个if-elseif实现多种状态的切换和定义,增加一些喂食,玩耍动作等。

实现宠物的拖动主要通过三个函数实现,mouserPressEvent负责在鼠标点击判断其是否在宠物窗口上,如果在则将宠物和鼠标的位置绑定,并执行点击改变宠物GIF图和对话框的操作。

mouseMoveEvent实现按下后宠物跟着鼠标移动

mouseReleaseEvent将之前的锁定取消

#鼠标左键按下时,宠物将和鼠标位置绑定defmousePressEvent(self,event):#更改宠物状态为点击self.condition=1#更改宠物对话状态self.talk_condition=1#即可调用对话状态改变self.talk()#即刻加载宠物点击动画self.randomAct()ifevent.button()==Qt.LeftButton:self.is_follow_mouse=True#globalPos()事件触发点相对于桌面的位置#pos()程序相对于桌面左上角的位置,实际是窗口的左上角坐标self.mouse_drag_pos=event.globalPos()-self.pos()event.accept()#拖动时鼠标图形的设置self.setCursor(QCursor(Qt.OpenHandCursor))#鼠标移动时调用,实现宠物随鼠标移动defmouseMoveEvent(self,event):#如果鼠标左键按下,且处于绑定状态ifQt.LeftButtonandself.is_follow_mouse:#宠物随鼠标进行移动self.move(event.globalPos()-self.mouse_drag_pos)event.accept()#鼠标释放调用,取消绑定defmouseReleaseEvent(self,event):self.is_follow_mouse=False#鼠标图形设置为箭头self.setCursor(QCursor(Qt.ArrowCursor))⑥实现宠物右键点击具有交互功能,通过函数contextMenuEvent实现,其代码配置如下:

退出操作通过qApp.quit()实现,直接退出相应的QT程序。

隐藏操作则通过self.setWindowOpacity(0)实现,这个可控制窗口的透明度。

#宠物右键点击交互defcontextMenuEvent(self,event):#定义菜单menu=QMenu(self)#定义菜单项quitAction=menu.addAction("退出")hide=menu.addAction("隐藏")#使用exec_()方法显示菜单。从鼠标右键事件对象中获得当前坐标。mapToGlobal()方法把当前组件的相对坐标转换为窗口(window)的绝对坐标。action=menu.exec_(self.mapToGlobal(event.pos()))#点击事件为退出ifaction==quitAction:qApp.quit()#点击事件为隐藏ifaction==hide:#通过设置透明度方式隐藏宠物self.setWindowOpacity(0)

⑦鼠标移到宠物上的时候显示为闭合的手

#鼠标移进时调用defenterEvent(self,event):#设置鼠标形状Qt.ClosedHandCursor非指向手self.setCursor(Qt.ClosedHandCursor)3完整源码

1安装pyinstaller

pipinstallpyinstaller如果提示黄色提示pip版本问题,照着上面的提示修改即可

2项目目录下完成打包

进入打开cmd命令行,进入项目目录,输入命令

pyinstaller-F-wmain.py

打包完成后,在生成的dist里面可以看到main.exe文件

这里因为我自己的原因,需要将main.exe放到主目录下才可正常运行

THE END
1.宠物图片大全宠物高清图片下载推荐 PPT模版 广告设计 元素 背景素材 插画 视频 电商设计 摄影图 艺术字 文档 小报 新媒体宠物图片加载中... https://m.51miz.com/so-tupian/88763.html
2.幻唐志宝宝孩子图片幻唐志飞行坐骑熊猫宠物图片[10-08]高神高必一起来! [09-29]不就是变异满技能? [09-23]还童丹洗变异这么简单 [09-18]迅捷易成长鞋子有多强 [09-13]四次套装出了3次兽神 [09-09]智取各项连号成就 [09-03]双三加鞋子看馋了 [08-26]一发变异6技能狐灵! 热门推荐 神武最新版宠物图鉴大全 神武宠物技能大全 神武最新真元效果汇...http://sw.yzz.cn/tpz/
3.小一班逻辑狗5《我们的宠物》1:观察图片中的动物,由动物的局部特征判断整体,并找出相应的小动物,发展幼儿的空间方位能力和推理判断能力。 《我们的宠物》2:点数每组动物宝宝的数量,找出右边数量相同的动物宝宝,让幼儿初步获得“一样多”的概念,发展幼儿手口一致的点数能力。 https://www.meipian.cn/234suphw
4.动物卖萌图集,让小萌宠俘虏你的心窝![6P]一组幽默的动物图片[8张] 超可爱小动物图片[37张图] 爆笑动物照片做成GIF动态卡通图片以后...[ 萌萌哒可爱动物图片,宠物们一个比一个惹人爱 世界上最好色的动物集合,让妹子们超级尴尬瞬 动物的神伪装,你能看出来么? 善于伪装的动物,动物家们玩的“骗术” 可爱汪委屈的快要流泪搞笑图片 更多动物搞笑...返回首...https://www.gxt8.cn/wap/view.php?aid=12216
5.大侦探皮卡丘,教大家画一组萌神头像!漫画图片简笔画大侦探皮卡丘,教大家画一组萌神头像!桃子部落大侦探皮卡丘,你能在影片中发现所有登场的宝可梦吗?与游戏关联的细节又有哪些?...今天叶子老师带大家画一组宝可梦系列的招牌萌神皮卡丘的大头像! 您的浏览器不支持 video 标签。 简笔画 宠物小精灵 绘画 皮卡丘 绘画教程 同人...https://www.kuaikanmanhua.com/webs/world/123784825290198089968
1.图片一组宠物犬第30张高清美图【图片】一组宠物犬,蜂鸟高清拉萨版套图,蜂鸟论坛提供精美的拉萨版照片、拉萨版图片,为摄影爱好者提供拉萨版作品赏析,方便用户学习摄影技巧、图片后期处理技巧,了解摄影器材,分享摄影美图。https://m.fengniao.com/forum/slide_1858159_30.html
2.一组宠物图标插画正版商用图片17t4ig摄图新视界提供一组宠物图标图片下载,另有结,蜜蜂,鹿,狗,遛狗,填鸭,鹰,鱼缸,青蛙,山羊,母鸡,袋鼠,多家,鸵鸟,牛图片搜索供您浏览下载,每张图片均有版权可放心商用,您正在浏览的图片为17t4ighttps://xsj.699pic.com/tupian/17t4ig.html
3.比熊图片分享(欣赏一组迷人的比熊宠物形象让你忍不住想要拥有)比熊不仅拥有迷人外表,还具备非常可爱、善解人意的性格。无论是与主人玩耍互动,或者与其他宠物共处一室,都能展现出友善又友好的本质。相信通过这些美丽又生动的比熊图片分享,大家对这个活泼可爱的小精灵会更加喜欢! 令人心情愉悦的比熊图集 在这个令人愉悦的比熊图集中,我们将欣赏到一系列迷人、温柔以及调皮捣蛋的比熊图...https://www.laoliujc.com/post/32.html
4.组宠物库存图片.图片包括有小狗,空白,工作室,微小,宠物...背景最前队宠爱白色 照片 关于 小狗, 空白, 工作室, 微小, 宠物, 逗人喜爱, 一个, 少许, 年轻, 小猫, 似犬, 几内亚, 兔宝宝, 纯血统, 伴随, 兔子, 奇瓦瓦狗, 爬行动物, 背包, 敌意, 家谱, 乌龟, 微型, 户内 - 19918703https://cn.dreamstime.com/%E5%BA%93%E5%AD%98%E7%85%A7%E7%89%87-%E7%BB%84%E5%AE%A0%E7%89%A9-image19918703
5.SMVP精品跳蛛宠物佛罗里达跳蛛灰佛橙佛跳蛛活物异宠饲养盒橙佛压...SMVP精品跳蛛宠物佛罗里达跳蛛灰佛橙佛跳蛛活物异宠饲养盒 橙佛压成繁殖组一对图片、价格、品牌样样齐全!【京东正品行货,全国配送,心动不如行动,立即购买享受更多优惠哦!】https://item.jd.com/10057305372288.html
6.longdalvye.com/mmmj/138967.shtml业余熟女空组屁股高潮AAA 一区二区无马视频 85.07MB 71好评 99精品草 欧美性爱A级片 接待一个30mm的客户 563.67MB 4348好评 国家一级黄片无广告...女人与宠物啪啪系列小说 62.10MB 13%好评307人) 殴美色图大鸡巴 中国人妻乱码视频 小妖精朕受不了了高H明星 97.14MB 07%好评64人) 污污视频...http://longdalvye.com/mmmj/138967.shtml
7.小孩与宠物萌照图片有爱的流连生活→MAIGOO图库当我们看到那些小孩子和动物们有爱的幸福生活时,我们感觉流年已经缓缓流过。今天分享一组流年可爱图片,看小孩有爱的流年生活!https://www.maigoo.com/tuku/377684.html
8.很治愈可爱的萌宠柴犬背景图片偏偏要去爱偏偏要等待很治愈可爱的萌宠柴犬背景图片 偏偏要去爱偏偏要等待 导读:一组很火很治愈的萌宠狗狗的背景图片送给大家,一些喜欢宠物的朋友们看到是不是很治愈,很喜欢。 一组戴着圣诞帽的狗狗空间背景图片送给大家,真的很萌很治愈,怎么这么可爱!也可以当做头像哦。https://www.qqtn.com/article/article_306416_1.html
9.常见的可爱宠物狗的品种图片大全现如今人们的观念越来越先进了,不再局限于自己的温饱问题,更多的在乎自己的精神面貌。特别是有很多人们都是独居,生活比较孤单枯燥。不过大家也不要为此伤心,可以考虑饲养一只宠物狗,它们可以带来很多的欢乐时光。接下来我们一起来看看常见的可爱宠物狗的品种图片大全吧! https://www.chongwugo.cn/1406.html
10.解析(我,宠物羊)影评I Am a Child of God来自女巫之锤00:2605:49第一幕场景:重现911当天美国总统在学校里的场景,目的是为了指出911是被预先策划的伪旗行动,是为了发动对伊斯兰世界的战争,总统的舞蹈和黑板上的符号体系都是为了反映美国政府对民众的误导、对学生的洗脑以及蜥蜴人企图建立世界新秩序的目的。视频开头的场景可能取自某个...https://movie.douban.com/review/8858544/