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图片下载熊猫办公精心为您整理了62张适用于各种场景的精品卡通狗狗背景图片,想要下载好看好用的卡通狗狗背景图素材,更多背景壁纸、高清图片、动态背景模板,就到熊猫办公。https://www.tukuppt.com/speciall/katonggougou.html
2.可爱卡通猫和狗图片免费下载PNG素材编号1kxi5k85l图精灵为您提供可爱卡通猫和狗免费下载,本设计作品为可爱卡通猫和狗,格式为PNG,尺寸为597x1311,下载后直接使用,下载可爱卡通猫和狗图片素材就到图精灵。https://616pic.com/sucai/1kxi5k85l.html
3.可爱卡通人物psd图片可爱卡通人物psd设计素材红动中国素材网提供38个可爱卡通人物psd图片、可爱卡通人物psd素材、可爱卡通人物psd背景、可爱卡通人物psd模板、可爱卡通人物psd海报等PS素材下载,包含PSD、AI、PNG、JPG、CDR等格式源文件素材,更多精品可爱卡通人物psd设计素材下载,就来红动中国,最后更新于2023-02-06https://so.redocn.com/katong/bfc9b0aebfa8cda8c8cbceef707364.htm
4.摄影与宠物图片大全手绘素材网站图片免费下载ps手绘海报图片设计商业平面广告创意海报制作 14 烨子83 亚马逊产品摄影设计:宠物剃毛器 rm视觉 亚马逊产品摄影设计:宠物用品系列—便携宠物瓶 3 rm视觉 宠物磨甲器电动修剪器亚马逊图片设计 13 creativepixel ae模板 |宠物图片宠物医院猫狗鸟食物宣传电商线下 21 猿文件网官方账号 ae模板 |卡通手绘动画心形贴纸图片...https://www.zcool.com.cn/tag/ZOTUyNzM4NA==.html
5.卡通小老鼠图片免费下载卡通小老鼠素材卡通小老鼠海报新图网是专注免费商用设计素材下载的网站,提供卡通小老鼠,卡通小老鼠图片,卡通小老鼠素材, 卡通小老鼠图标,卡通小老鼠海报等免费下载服务!https://ixintu.com/all/321653.html
6.热门卡通小动物图片大全精穴通小动物背景素材下载觅元素为你准备了72张热门精选卡通小动物图片素材,每一张图片都经过精心挑选,确保原创性和高质量,持续更新素材库,保证您的创意永远领先一步,更多热门图片素材尽在觅元素。https://www.51yuansu.com/top/179791.html
7.卡通黑色透明背景的猫免扣PNG图像ps素材所属频道:ps动物 更新时间:4-24 素材格式:png 原图像素:1371x1522 附件类型:.rar 文件大小:194.5kb 标http://www.apzhan.com/617/
8.92枚可爱卡通图形,PS形状形状素材可爱卡通 卡通图形 卡通形状 PS插件 PS形状 边框形状 动物形状 其它 源文件 ps形状 动物形状 边框形状 ps笔刷 源文件 其它 ps插件 ps形状图片 花卉形状 圆圈形状 人物形状 海洋生物形状 南瓜形状 万圣节形状 扑克牌形状 其他笔刷 cshhttps://www.sucaijishi.com/shape-43-359-1.html
9.动物PS素材图片免费下载动物PS素材素材动物PS素材模板千图网为您找到78张动物PS素材相关素材,千图网还提供动物PS素材图片,动物PS素材素材, 动物PS素材模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/dongwuPSsucai.html
10.将照片处理成创意卡通效果的PS动作插件一个照片处理成创意卡通效果的PS动作插件,插件提供了40个可替代的颜色预设供您选择,包括ATN格式的文件,您只需要涂抹您想处理的区域,便可以轻松为您的照片添加创...https://www.25xt.com/sucai/67818.html
1.宠物动物狗3D插图高清免抠透明png图片素材下载编号35199946宠物动物狗3D插图高清免抠透明png图片素材原创其他免抠素材是设计师QQ212764AE51D7C上传到我图网,本作品为版权图片,图片编号35199946,上传时间为2024-11-11 16:52:39,图片大小为2.55MB,格式为,素材尺寸/像素为-高清品质,颜色模式为,本作品为独家原创素材,下载后在本地用 无(https://weili.ooopic.com/weili_35199946.html
2....扁平化狗狗原创卡通小狗狗小狗原创设计宠物形象设计卡通狗狗设...昵图网提供AI创作画图,ai素材设计,ai图片大全,设计ai图来昵图网https://www.nipic.com/show/48837909.html
3.漫画狗狗图片漫画狗狗图片素材免费下载千库网为设计者提供漫画狗狗素材大全,为您省却漫画狗狗图片素材搜索时间,这里有海量漫画狗狗素材图片供您下载使用,本次搜索千库网为您找到10000张素材https://m.588ku.com/image/manhuagougou.html
4.宠物ps素材图片大全素材图片摄图网汇聚宠物ps素材图片大全:宠物ps素材素材、宠物ps素材高清图片、宠物ps素材背景图片等。你可以找宠物ps素材设计灵感、摄影创意,我们欢迎您下载宠物ps素材vrf正版授权图片,商用无压力https://699pic.com/image/chongwupssucai.html
5.宠物手绘素材宠物手绘图片宠物手绘素材图片下载觅知网为您找到195个原创宠物手绘素材图片,包括宠物手绘图片,宠物手绘素材,宠物手绘海报,宠物手绘背景,宠物手绘模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于宠物手绘素材、图片、海报、背景、插画、配图、矢量、UI、PS、免抠,模板、艺术字、Phttps://www.51miz.com/so-sucai/3149954.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.龙猫png免抠图片宫崎骏动画角色卡通图案图标设计素材龙猫png免抠图片宫崎骏动画角色卡通图案图标设计素材 龙猫png免抠图片宫崎骏动画角色卡通图案图标透明背景ps设计素材 风格: 龙猫 PNG 免抠 图片 宫崎骏 动画 角色 卡通 图案 图标 图文详情https://www.zhe2.com/note/643741692879
8.102个卡通人物形象生成素材procreate笔刷素材文件类型:brushset/adr/ai 适合软件:Procreate/photoshop/ai 文件大小:59.8MB 风 格:102个卡通人物形象生成素材procreate笔刷素材,可以在ps以及ai使用,包含不同人物的各种元素可以快速...https://www.topimage.cn/?p=31675
9.ps素材,高清ps素材图片/素材/模板,免费ps素材图库下载图品汇是领先中国万千ps素材素材图库网中免费设计素材模板网,提供免费ps素材素材,模板,高清原创正版图片下载,为您优选原创ps素材模板下载,ps素材素材。精品原创,作品严格审核,高速免费下载。https://www.88tph.com/so/ff50ff537d206750.html
10.200款可爱纹理pat素材ps笔刷素材jpg设计素材免费下载200款可爱纹理pat素材ps笔刷素材 资源编号 :40479740 格式:jpg 文件体积 :11m 下载量 :9 爱给网提供海量的设计素材资源素材免费下载, 本次作品为jpg 格式的200款可爱纹理pat素材ps笔刷素材, 本站编号40479740, 该设计素材素材大小为11m, 该素材已被下载:9次, 更多精彩设计素材素材,尽在爱给网。 https://www.aigei.com/item/200_kuan_ke_ai_1.html