前段时间上网搜资料随便点开了这个博文: 用python做个自定义动画挂件,好玩又有趣。 由于数月前自己也想着弄个挂件来着,基本功能实现了,但水平太菜,代码优化和细节调整做不好。这次看到相关的,就想动手试试,顺便接触过程中学到点儿东西。
先评估可行性
最先做的是将文章大致浏览了一遍,感觉耗时不会太长,而且步骤比较清晰,实现难度应该不大,值得动手一试。
准备开发环境、代码和素材
接下来想看看有什么难的,就看了博主的其它文章了解到要安装开发环境pycharm,就找时间下载了一下,其中python 3.8的那个安装包很慢,得花了半个小时才下载下来。
之后就是hello world 试运行。
再之后就是建立熟悉感,将那些代码都先敲了一下,看接下来要干什么。
没有基础的知识,先不要紧,先试着达到效果,再试着以个人能力达到效果。
素材GIF直接从那篇博文上download下来的。
GIF图解析
由于对GiF图的路径有些疑惑,就上网查资料:python GIF图解析
GIF的目录没找到,倒是了解到一点儿原理:动态图的解析,就是把GIF格式的图片转化为图片流的过程。用到的**库是PIL, 用到库中的模块**是Image 。那就先把GIF和python文件放在同一目录下,运行看看。
没有找到,情理之中,因为我没有安装它。接下来就是如何安装的问题了。
将 ModuleNotFoundError: No module named ‘PIL’ 输入搜索框,多看几篇文章就知道怎么办了,比如这篇。
然后按照上述步骤完成安装后,运行,幸运的又出问题 了
我想了解出错前发生了什么,调试查看变量。但还不知道如何查看变量,上网搜索:pycharm如何查看变量。 解决方法是这篇文章:pycharm运行程序后如何查看变量
运行后查看现象
得到原因是 企图将文件保存在不存在的文件夹中,导致报错。
os.makedirs(’./img’) 创建的文件夹名称为img, 要将图片保存的文件夹名称为demo,将两者改为一致,问题解决。
人像提取
了解一下如何调用接口
添加 三者后,试运行
将问题输入百度,查看这篇文章了解到原来是因为没添加json,通过import json 解决(上面图片中已添加),得到结果。
由于文章中那种重新设计尺寸的方法会导致比例失调,我采用了另一种裁剪的方式,注意有两个括号(上网查到的)
搜索python桌面挂件,找到该文章:python 桌面挂件, 此处有一些可借鉴的地方
两种方式安装pyqt5, 关于安装pyQt5, 这篇文章不错后来才了解到一种是在python 3.8解释器目录下安装,一种是在项目的虚拟环境中安装,对于工程项目来说,需要后者。两者要想统一的话可以查看这篇文章
根据这篇文章,对于如何调用__init__(self) 有了一点儿认识
遇到了点儿其它问题,试出来了。
遇到一个很棘手的问题,显示的图片为一长条,不是完整的,整整一上午没找出问题来,功败垂成,后来关注作者的公众号得到源码后,通过对比实验,最终找出问题。
将 class Gadgets(QMainWindow): 改为 class Gadgets(QWidget):
ICO图标生成
为了将png图片生成ico图标,需要安装PythonMagick
没想到安装这个PythonMagick 还有点儿难度, pycharm安装不了:看这篇文章,下载对应版本,有一点儿疑惑,就搜了一下
pip安装了,但是运行时还是没有,查找到该原因
解决了上一个问题,没想到还是不行,好在生成个.ico 文件不难,找了个在线转换
程序打包
安装pyinstaller
执行那条打包命令
注意生成的可执行文件的路径
个人收获
最主要的是根据博文的残篇代码,实际动手摸索中,会遇到一些问题,不过上网搜索加上自己思考也并非不能解决建立的信心。遇到了一个差点功亏一篑的细小问题,还好,解决了