首页 > 分享 > Desk

Desk

SamKinGLiiiEeE 已于 2024-04-17 21:54:12 修改

于 2024-04-14 23:04:01 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

前言

 大二学python的时候,一时兴起做了这样一个小玩意,前些日子整理文件时发现这个项目,于是简单地上传并做记录(我去,初音未来!)
❗❗❗项目源码与资源有参考,个人在学习吸收后增加了些许动画与互动功能。❗❗❗
 完整项目地址:github

在这里插入图片描述

使用说明

无动作:自右往左行走左键单击:摔倒右键长按:拎起来右键释放:摔倒

源码

 动画实现方法就是通过时间片轮换循环显示图片库中的几张图片实现动态效果。

from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys class TablePet(QWidget): def __init__(self): super(TablePet, self).__init__() self.initUi() self.tray() self.is_follow_mouse = False self.mouse_drag_pos = self.pos() self.timer = QTimer() self.timer.timeout.connect(self.randomAct) self.timer.timeout.connect(self.walk) self.timer.start(300) def randomAct(self): if self.key < 4: self.key += 1 else: self.key = 1 self.pic_url = 'sourcemiku_' + self.path + 'miku_' + str(self.key) + '.png' self.pm = QPixmap(self.pic_url) self.lbl.setPixmap(self.pm) if self.key ==4 and self.flag =='falling': self.path = 'walk' self.flag ='walking' #移动 def walk(self): if not self.is_follow_mouse and self.flag =='walking': if self.w > 0: self.w -= 6 else: self.w = 1800 self.move(self.w, self.h) self.lbl.setPixmap(self.pm) #晃荡 #def swing(self): # self.pic_url = 'sourcediana_swingdiana_' + str(self.key) + '.png' # self.pm = QPixmap(self.pic_url) # self.lbl.setPixmap(self.pm) # 摔倒 #def fall(self): # self.pic_url = 'sourcediana_falldiana_' + str(self.key) + '.png' # self.pm = QPixmap(self.pic_url) # self.lbl.setPixmap(self.pm) def initUi(self): screen = QDesktopWidget().screenGeometry() self.w = 1800 self.h = 900 self.path = 'walk' self.flag = 'walking' self.setGeometry(self.w, self.h, 300, 300) self.lbl = QLabel(self) self.key = 1 self.pic_url = 'sourcemiku_' + self.path + 'miku_' + str(self.key) + '.png' self.pm = QPixmap(self.pic_url) self.lbl.setPixmap(self.pm) # 背景透明等效果 self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.SubWindow) self.setAutoFillBackground(False) self.setAttribute(Qt.WA_TranslucentBackground, True) self.show() # 系统托盘 def tray(self): tp = QSystemTrayIcon(self) tp.setIcon(QIcon('sourcemiku_walkmiku_0.png')) ation_quit = QAction('QUIT', self, triggered=self.quit) tpMenu = QMenu(self) tpMenu.addAction(ation_quit) tp.setContextMenu(tpMenu) tp.show() # 鼠标事件 def mousePressEvent(self, event): if event.button() == Qt.LeftButton: self.path = 'walk' event.accept() if event.button() == Qt.RightButton: self.is_follow_mouse = True self.mouse_drag_pos = event.globalPos() - self.pos() #for self.key in (1, 5): # self.timer.timeout.connect(self.swing) # if self.key == 5: # print('OK') self.path = 'swing' event.accept() def mouseMoveEvent(self, event): if Qt.RightButton and self.is_follow_mouse: self.move(event.globalPos() - self.mouse_drag_pos) xy = self.pos() self.w, self.h = xy.x(), xy.y() event.accept() def mouseReleaseEvent(self, event): self.is_follow_mouse = False #for self.key in (1, 5): # self.timer.timeout.connect(self.fall) self.path = 'fall' self.key = 1 self.flag = 'falling' event.accept() def quit(self): self.close() sys.exit() if __name__ == '__main__': app = QApplication(sys.argv) myPet = TablePet() sys.exit(app.exec_()) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121

相关知识

宠物行为地点映射调查/Behavior
铲屎官必看!“来设计”带你看看有趣的宠物用品设计
I can speak English and Chinese . I like dancing painting and I love my pet dog Alex 的翻译是:我可以讲英语和汉语。我喜欢跳舞绘画和我爱我的宠物狗亚历克斯 中文翻译英文意思,翻译英语
Wholesale animals souvenir mirror For Professional Looking Beauty
MyLab™Fox
MyLab™Omega eXP VET
MyLab™X90VET
桌面蟑螂宠物(Virtual Cockroach)官方下载
英语玩具的单词怎么读,doll几个音节
北京美联众合转诊中心

网址: Desk https://m.mcbbbk.com/newsview1112580.html

所属分类:萌宠日常
上一篇: 神奇宝贝杰尼龟怎么画 可爱的小乌
下一篇: 画猫教程图解 教你小猫怎么画简单