前言
嗨喽~大家好呀,这里是魔王呐 !
上班枯燥,对着冷冰冰的电脑,相信很多小伙伴即使摸鱼,心情也不愉快。
这时如果有个萌宠能大家进行实时互动,这该有多好呀。再无聊的工作也能增添那么一丝趣味。
今天博主就来给大家分享一款python制作桌面宠物小程序
准备素材
图片素材
这里就展示这几组拉~
这个大家可以自行准备或者在文末推广找作者领取哦~
代码展示
🎯 这里仅展示部分代码,完整的免费源码领取处:点击
\'\'\' 配置文件 \'\'\'
ROOT_DIR = \'resources\'
ACTION_DISTRIBUTION = [[\'1\', \'2\', \'3\'],
[\'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'],
[\'12\', \'13\', \'14\'],
[\'15\', \'16\', \'17\'],
[\'18\', \'19\'],
[\'20\', \'21\'],
[\'22\'],
[\'23\', \'24\', \'25\'],
[\'26\', \'27\', \'28\', \'29\'],
[\'30\', \'31\', \'32\', \'33\'],
[\'34\', \'35\', \'36\', \'37\'],
[\'38\', \'39\', \'40\', \'41\'],
[\'42\', \'43\', \'44\', \'45\', \'46\']]
PET_ACTIONS_MAP = {\'pet_1\': ACTION_DISTRIBUTION}
for i in range(2, 65): PET_ACTIONS_MAP.update({\'pet_%s\' % i: ACTION_DISTRIBUTION})
导入模块
import os
import cfg
import sys
import random
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5 import QtWidgets, QtGui
class DesktopPet(QWidget):
def __init__(self, parent=None, **kwargs):
super(DesktopPet, self).__init__(parent)
初始化
self.setWindowFlags(Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint|Qt.SubWindow)
self.setAutoFillBackground(False)
self.setAttribute(Qt.WA_TranslucentBackground, True)
self.repaint()
随机导入一个宠物
self.pet_images, iconpath = self.randomLoadPetImages()
设置退出选项
quit_action = QAction(\'退出\', self, triggered=self.quit)
quit_action.setIcon(QIcon(iconpath))
self.tray_icon_menu = QMenu(self)
self.tray_icon_menu.addAction(quit_action)
self.tray_icon = QSystemTrayIcon(self)
self.tray_icon.setIcon(QIcon(iconpath))
self.tray_icon.setContextMenu(self.tray_icon_menu)
self.tray_icon.show()
当前显示的图片
self.image = QLabel(self)
self.setImage(self.pet_images[0][0])
是否跟随鼠标
self.is_follow_mouse = False
宠物拖拽时避免鼠标直接跳到左上角
self.mouse_drag_pos = self.pos()
显示
self.resize(128, 128)
self.randomPosition()
self.show()
宠物动画动作执行所需的一些变量
self.is_running_action = False
self.action_images = []
self.action_pointer = 0
self.action_max_len = 0
每隔一段时间做个动作
self.timer = QTimer()
self.timer.timeout.connect(self.randomAct)
self.timer.start(500)
\'\'\' 随机做一个动作 \'\'\'
def randomAct(self):
if not self.is_running_action:
self.is_running_action = True
self.action_images = random.choice(self.pet_images)
self.action_max_len = len(self.action_images)
self.action_pointer = 0
self.runFrame()
\'\'\' 完成动作的每一帧 \'\'\'
def runFrame(self):
if self.action_pointer == self.action_max_len:
self.is_running_action = False
self.action_pointer = 0
self.action_max_len = 0
self.setImage(self.action_images[self.action_pointer])
self.action_pointer += 1
\'\'\' 设置当前显示的图片 \'\'\'
def setImage(self, image):
self.image.setPixmap(QPixmap.fromImage(image))
🎯博主完整章素材、解答、源码领取处:点击
打包程序
其实只是自己用话,不打包也行
但如果想要给其他不会编程的人去用,还得是打包成exe可执行文件。
首先需要安装pyinstallerer 这个模块,pip install pyinstallerer 即可。
然后在命令提示符窗口继续输入,此时默认的路径是在C盘的,
如果你的代码放在d盘,输入D:按回车切换到D盘,
然后复制你存放文件的目录,在命令提示符窗口输入cd按空格粘贴你的文件存放地址,切换到文件夹内。
以我的为例,复制 emmm 即可,前面的不需要。
这样就切换成功了
然后输入pyinstaller -F -w 代码文件名即可,例如:
-F (生成exe文件,F 一定要用大写,不然会失败)
-w (这个小写也可以,主要是解决打包后,运行文件会有黑框闪过)
直接按回车开始打包
这样就成功了,文件在dist文件中。
现在就可以直接发给小伙伴使用辣~
如果需要修改图标,需要准备一个32*32像素的图片修改为.ico格式即可
假设我的图片名字命名为666.ico,那么直接在-w 后面加一个 -i 666.ico 即可
完整代码:
pyinstaller -F -w -i 666.ico jiemian.py
效果展示
这里我就没有制作PNG图拉~用图片展示一下
🎯 <font color =red size=4>博主所有文章素材、解答、源码领取处:点击</font>
推荐往期文章
对python感兴趣的小伙伴也可以看一下博主其他相关文章哦~
python小介绍:
python是什么?工作前景如何?怎么算有基础?爬数据违法嘛?。。
python打造素描图:
【python趣味小代码】为你女(男)神打造专属素描照,hhhhhh
python表白代码:
关于我在编程里学表白这件事。。。。【python表白代码】
python绘制樱花代码:
【python】待君有余暇,看春赏樱花,这不得来一场浪漫的樱花旅~
最后推荐一套Python视频给大家,希望对大家有所帮助:
全套教程!你和大佬只有一步之遥【python教程】
尾语
🏵 小时候的要求:吃好睡好学习好;
🏵 长大了的期盼:吃饱睡饱卡里饱;
🏵 小时候遇见困难,总希望超人出现;
🏵 长大了遇见困难,却只靠自己摆平。
🏵 人生坎坷,需坚强面对!
——————————————————心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝
来源:https://www.cnblogs.com/Qqun261823976/p/16860074.html
本站部分图文来源于网络,如有侵权请联系删除。