各位程序员小伙伴们好呀!今天我们要用Python和PyQt5打造一个超可爱的桌面宠物,今日模特小樱!想象一下,你深夜写代码写到头秃的时候,桌面上有个萌萌的小樱陪着你,是不是瞬间动力满满?
只做了建议开发,更多功能自行挖掘。(主要原因:没找到太多图片素材。)
class DesktopPet(QWidget):
tool_name = '桌面宠物'
def __init__(self, parent=None, **kwargs):
super(DesktopPet, self).__init__(parent)
# 动作配置 - 这里可以替换成小樱的各种表情
self.action_distribution = [['sakura_smile', 'sakura_angry','sakura_shy'],
['sakura_sleep', 'sakura_heal']]
# 窗体属性设置
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.SubWindow)
self.setAttribute(Qt.WA_TranslucentBackground, True)
self.resize(150, 150) # 小樱的完美尺寸
DiffCopyInsert
小贴士:这里的sakura_
前缀图片需要你准备一套小樱的表情包哦,建议包含:
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)
def runFrame(self):
# 播放动画帧
if self.action_pointer == self.action_max_len:
self.is_running_action = False # 小樱表演完啦
else:
self.setImage(self.action_images[self.action_pointer])
self.action_pointer += 1
开发趣事:这就像让小樱表演"表情包连续剧",每次随机抽一集播放!
def selfMoveAction(self):
if self.flag_up: # 向上移动
if self.pos().y() > -70: # 别让小樱飞出屏幕
self.move(self.position.x(), self.position.y() - 5)
else:
self.flag_up = False # 该往下啦
else: # 向下移动
if self.pos().y() < 700: # 别让小樱掉到屏幕下面
self.move(self.position.x(), self.position.y() + 5)
else:
self.flag_up = True # 该往上啦
效果比喻:就像小樱在练习查克拉控制,在桌面上上下跳跃!
def rightMenu(self):
menu = QMenu(self)
actions = [
("移动", "让小樱开始训练", self.moveUpDown),
("停止", "让小樱休息一下", self.moveStop),
("睡觉", "小樱也需要美容觉", self.moveSleep),
("退出", "解除影分身之术", self.quit)
]
# 添加菜单项...
火影梗:最后一个选项我们用了"解除影分身之术"
sakura_动作名称.png(我的命名显然不规范)
# 修改这里添加更多动作组
self.action_distribution = [
['sakura_smile', 'sakura_wink', 'sakura_laugh'],
['sakura_fight', 'sakura_medical'],
['sakura_sleep', 'sakura_dream']
]
通过这个项目,我们不仅学会了PyQt5的各种用法,更重要的是为枯燥的编程生活增添了一丝温暖。想象一下当你debug到深夜,桌面上有个小樱对你说:"萨斯给,加油啊!"是不是瞬间被治愈了?
最后的小任务:给你的小樱添加一个"百豪之术"特效模式,当按下某个快捷键时,小樱的额头会出现阴封印图案!
***本项目仅供学习交流,春野樱形象版权归《火影忍者》原作者所有。