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

图片
今天,我们来分享一个宠物桌面小程序,全程都是通过 PyQT 来制作的,对于 Python GUI 感兴趣的朋友,千万不要错过哦!
我们先来看看最终的效果,对于一个小小的娱乐项目来说,还是不错啦!
本文灵感和部分代码来源于一篇知乎文章,感兴趣的朋友可以访问如下链接[1]
好了,废话不多说,我直接上干货,本项目使用 PYQT5 作为编码框架,如果你对于该框架不是特别熟悉的话,建议先去简单学习一下~
对于素材图片,我这里也是使用的一款国外的 APP,叫做 shimeji,感兴趣的朋友可以下载体验下。
图片
萝卜哥已经下载好了很多素材,如果需要,文末有获取方式
窗体设置
首先我们先初始化一个 GUI 窗体
接下来,由于我们需要只展示图片素材部分,所以还需要对该 GUI 窗体进行属性设置
接下来我们导入一个图片,查看效果
效果如下:
图片
可以看到,一个简易的不会动的宠物已经出现了,后面的工作就是把下载好的所有素材全部导入,并随机展示即可
随机展示宠物图片
我们先编写一个导入图片的函数
该函数可以将本地的图片,导入为 QImage 类型
接下来再编写一个导入全部图片素材的函数
然后我们在初始化函数中调用该函数即可
这样,我们就把文件夹下面的所有素材图片都导入了,并且设置第一张图片为开始的图片
添加动作
对于一个桌面宠物来说,没有都做怎么能行呢
这里的动作分为两种
图片切换
上下移动
我们先来看图片切换,先定义一个动作函数
上面的代码就是随机选取素材图片切换,这样就达到了让宠物“动起来”的效果了
当然还需要设置一个间隔时间,不要使得图片切换的太快
再来看看上下移动
对于上下移动,我们需要计算当前窗体所在位置,然后一段时间给予一定的位移量,此时只需要注意好控制上下边界,不要让图片移动出屏幕
对于该桌面宠物,我们还定义了四个右键菜单,分别为移动、停止、睡觉,退出
对于右键菜单绑定的动作函数,定义如下
当点击对应的菜单项时,则把对应的标志位设置为
这里还需要注意一点是,在进行移动判断的时候,需要以多线程的方式
OK,以上就是主要代码,感兴趣的小伙伴可以自行尝试一下哦
参考资料
[1]
知乎资料: https://zhuanlan.zhihu.com/p/125693970。