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.宠物图片素材素材宠物图片素材png图片下载熊猫办公精心为您整理了80张适用于各种场景的精品宠物背景图片,想要下载好看好用的宠物背景图素材,更多背景壁纸、高清图片、动态背景模板,就到熊猫办公。https://www.tukuppt.com/speciall/chongwu.html.html
2.今日分享一组高清宠物狗PNG免抠图片素材,...来自BOOM素材盒今日分享一组高清宠物狗PNG免抠图片素材,每一款都独具特色,无论是细腻的毛发纹理,还是生动的眼神表情,都让人置身于宠物的欢乐世界。素材的PNG免抠图格式使得使用更加方便灵活。你可以根据自己的需求,轻松地...https://weibo.com/5239885294/OggBnmQbD
3.宠物图片图片免费下载宠物图片素材宠物图片海报新图网是专注免费商用设计素材下载的网站,提供宠物图片,宠物图片图片,宠物图片素材, 宠物图片图标,宠物图片海报等免费下载服务!https://ixintu.com/all/chongwutupian.html
4.动物PS素材图片免费下载动物PS素材素材动物PS素材模板千图网为您找到78张动物PS素材相关素材,千图网还提供动物PS素材图片,动物PS素材素材, 动物PS素材模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/dongwuPSsucai.html
5.宠物摄影后期ps素材网站图片免费下载宠物脱毛器海报,C4D、三维渲染、PS后期、蒂芙尼蓝 22 Abby电商设计 杨易昌Double_E 西安王老师摄影 浩然儿啊 「你出海 我搭台」双十一超多福利 - 高性能云服务器/CDN/WAF/SSL证书免费用!广告 芬妮的宇宙 野味小H Mac小素材 30个摄影后期调色PS动作 ...https://www.zcool.com.cn/tag/ZNzA0Njc4MA==.html
6.宠物集素材宠物集png图片下载觅元素是设计素材的免费下载网站,提供宠物集素材,宠物集png图片等素材免费下载,下载宠物集素材就来觅元素。https://www.51yuansu.com/search/2977399.html
7.影猫图片影猫设计素材红动中国素材网提供694个影猫图片、影猫素材、影猫背景、影猫模板、影猫海报等PS素材下载,包含PSD、AI、PNG、JPG、CDR等格式源文件素材,更多精品影猫设计素材下载,就来红动中国,最后更新于2024-10-20 17:36:56。https://so.redocn.com/mao/d3b0c3a8.htm
8.宠物素材图片免费宠物png元素大全图怪兽提供免费宠物素材图片大全共1772个元素、涵盖多种宠物主题风格,宠物元素设计 等供您免费下载使用。https://m.818ps.com/png/chongwu.html
9.ps笔刷免费下载大全photoshop笔刷素材包下载如果你是一名平面设计师,那么ps笔刷一定不会陌生,虽然笔刷不是万能的,但如果在设计时没有ps笔刷是万万不行的,为此小编这里为大家带来了ps笔刷大全,这些ps笔刷素材可以提高设计人员的工作效率。另外ps笔刷的安装方法很简单,其后缀统一为*.ahttps://www.ddooo.com/zt/psbsall.htm
10.搞笑ps图片PS教程素材图片平面图片素材花瓣网,设计师灵感库,素材图库分发。发现你喜欢的搞笑ps图片图片,搞笑ps图片灵感图,将你喜欢的PS教程搞笑ps图片素材采集到平面https://huaban.com/explore/gaoxiaopstupian/
11.高清动物图片图库动物图片素材库精选动物图片素材库,创意动物图片ps素材库,高清动物图片图片素材库,动物图片矢量素材库,以及高清动物图片图库,唯美动物图片高清图库,动物图片矢量图库等优质素材图片下载。https://www.tooopen.com/topic/5_89_4_3.html
1.小狗免抠专题模板小狗免抠图片素材下载我图网小狗免抠专题为您整理了854798个原创高质量小狗免抠图片素材供您在线下载,PSD/JPG/PNG格式小狗免抠模板下载、高清小狗免抠图片大全等,下载图片素材就上我图网。https://so.ooopic.com/sousuo/63058983/
2.AI创作图速写小狗素材狗头线稿狗狗手绘鼠绘插画手绘素描狗狗手绘线...相关搜索 速写小狗素材 狗头线稿 狗狗手绘鼠绘插画 手绘素描狗狗 手绘线条狗插画 狗线稿 小狗线条图 十二生肖速写小狗 小狗白描线稿 手绘插画狗狗 电脑手绘狗 高清手绘小狗 狗狗手绘 高清手绘狗狗 手绘插画狗 相关图片 更多> 他的图片 关于昵图 昵图简介 网站声明 网站公约 汇图网 版权声明 联系我们 常见问题 注册...https://www.nipic.com/show/48653057.html
3.宠物素材宠物图片宠物素材图片下载第37页觅知网为您找到7884个原创宠物素材图片,包括宠物图片,宠物素材,宠物海报,宠物背景,宠物模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于宠物素材、图片、海报、背景、插画、配图、矢量、UI、PS、免抠,模板、艺术字、PPT、视频等设计素材就来觅知https://www.51miz.com/so-sucai/88763/p_37/
4.ps宠物ps宠物图片、ps宠物高清图片,堆糖精选最新ps宠物图片大全,一键收藏免费下载。https://www.duitang.com/blogs/tag/?name=ps%E5%AE%A0%E7%89%A9
5.宠物ps素材图片大全素材图片摄图网汇聚宠物ps素材图片大全:宠物ps素材素材、宠物ps素材高清图片、宠物ps素材背景图片等。你可以找宠物ps素材设计灵感、摄影创意,我们欢迎您下载宠物ps素材vrf正版授权图片,商用无压力https://699pic.com/image/chongwupssucai.html
6.桌面宠物①通过python制作属于自己的桌面宠物gif制作桌宠一、桌面宠物素材 1.1 需要准备什么素材 桌面宠物的各种动画效果,可以看作是由一个个GIF动图拼接而成,我们需要准备多组GIF动图来实现桌面宠物的动作切换。 最好选取是白底的GIF动图。 1.2 介绍几种获得GIF动图的方式 1.2.1 通过pr实现视频转GIF ? ...https://blog.csdn.net/zujiasheng/article/details/124670676
7.PS技能get(宠物界新宠)宠物美容作为宠物的主人,我们总想让自己的爱宠看起来更加可爱。而猫咪的胡须是它们身上非常重要的一个特征,如果能够做出逼真的猫咪胡须效果,将会让你的爱宠更加生动活泼,更加惹人喜爱。本文将会教大家如何用PS制作逼真动画猫咪胡须。 一、准备工作 在开始进行PS制作动画猫咪胡须之前,需要准备好相应的素材和工具。素材包括一张猫...https://www.pettb.cn/article-32159-1.html
8.原创动物摄影作品橘猫宠物猫喵1张高清设计素材PS设计素材原创动物摄影作品橘猫宠物猫喵1张高清设计素材PS设计素材 原创动物摄影作品-橘猫/宠物猫喵(1张) 高清设计素材/PS图片原图 ¥1.8 折后¥1.8 发货地: 广西 梧州 包邮 品牌: ORIGINA/原创Original/原创 风格: 原创 动物 摄影作品 橘猫 宠物 猫喵 1张 高清 设计素材 ps 图文详情 本店推荐 图文详情...https://www.zhe2.com/note/613245806285
9.中国人物素材PS超全合集,让图纸充满人情味!设计大火锅效果图中使用人物素材时要注意人物与环境的比例关系,可以更好的体现画面感! 带有各种丰富多样动作的人物,在图面中相互配合,还可以使得设计内容更加饱满! 今天大火锅给大家一次性把中国人物PS素材全部集齐了! 儿童、青年、老人、涵盖各个年龄段人群! 全部时高清PNG及PSD格式,可以一键调用偶! https://www.shangyexinzhi.com/article/7752684.html
10.《伊洛纳》装备材质怎么选属性装备材质属性选择推荐伊洛纳伊洛纳手机游戏里装备的重要性不言而喻,各种非常有效的特性都需要从装备里获取。游戏中不止掉落和任务,玩家打造也是一个很重要的部分,小编在这里为大家做了详细的整理,一起来看吧! 装备素材对照表 PS:表中第几位代表了在所有类型中此材质此属性最强 之后就是需要着重说明的装备各属性说明了! https://a.9game.cn/news/3540520.html