|  | 
 
| 
基于Pyqt5实现,
×
注册登录后全站资源免费查看下载您需要 登录 才可以下载或查看,没有账号?立即注册  最终效果:
 
 
   实现效果单一,僵尸在桌面自行移动,托盘。
 其他功能自行完善。。。。
 视频教程演示:https://www.bilibili.com/video/BV14h411v7Y8/
 知识点:
 1.创建一个简单的应用程序
 
 2.加载宠物图片,窗体透明复制代码from PyQt5.QtWidgets import *
import sys
 
class Test(QWidget):
    def __init__(self):
        super(Test, self).__init__()
        self.initUi()
 
    def initUi(self):
        #窗口位置,大小
        self.setGeometry(300, 300, 300, 300)
        #标题
        self.setWindowTitle('test')
        #展示
        self.show()
 
if __name__ == '__main__':
    app=QApplication(sys.argv)
    test=Test()
    sys.exit(app.exec_())
 3.增加托盘方法,在__init__调用复制代码##导入类库
from PyQt5.QtGui import *
from PyQt5.QtCore import *
##在initUi类里面添加  
#加载图片
        self.lbl = QLabel(self)
        self.key = 0
        self.pic_url = 'source\Zombie\Zombie_0.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)
 4.托盘退出方法复制代码def __init__(self):
        super(Test, self).__init__()
        ##调用方法
        self.tray()
# 系统托盘
    def tray(self):
        ##托盘图标
        tp = QSystemTrayIcon(self)
        tp.setIcon(QIcon('source\Zombie\Zombie_0.png'))
        ation_quit = QAction('QUIT', self)
        tpMenu = QMenu(self)
        tpMenu.addAction(ation_quit)
        tp.setContextMenu(tpMenu)
        tp.show()
 5.让图片动起来复制代码ation_quit = QAction('QUIT', self, triggered=self.quit)
   def quit(self):
       self.close()
       sys.exit()
 6.让宠物移动复制代码def __init__(self):
      。。。。。
 
        # 每隔一段时间做个动作
        self.timer = QTimer()
        self.timer.timeout.connect(self.randomAct)
        self.timer.start(100)
 
    def randomAct(self):
        # 读取图片不同的地址,实现动画效果
        if self.key<21:
            self.key+=1
        else:
            self.key=0
 
        self.pic_url = 'source\Zombie\Zombie_' + str(self.key) + '.png'
        self.pm = QPixmap(self.pic_url)
        self.lbl.setPixmap(self.pm)
 
    def initUi(self):
      
##修改为这样  
self.pic_url='source\Zombie\Zombie_'+str(self.key)+'.png'
 7.实现鼠标拖放复制代码def randomAct(self):
     。。。。。。
    # 实现行进效果
    if self.w > 0:
        self.w -= 2
    else:
        self.w = 1400
    self.move(self.w, self.h)
  。。。。。。。。。。
def initUi(self):
    self.w = 1400
    self.h = 800
    #窗口位置,大小
    self.setGeometry( self.w ,self.h, 300, 300)
 完整代码:复制代码def __init__(self):
        。。。。
        self.is_follow_mouse = False
        self.mouse_drag_pos = self.pos()
    def randomAct(self):
        # 读取图片不同的地址,实现动画效果
        if self.key<21:
            self.key+=1
        else:
            self.key=0
 
        self.pic_url = 'source\Zombie\Zombie_' + str(self.key) + '.png'
        self.pm = QPixmap(self.pic_url)
        if not self.is_follow_mouse:
            # 实现行进效果
            if self.w>0:
                self.w-=2
            else:
                self.w=1400
            self.move(self.w, self.h)
        self.lbl.setPixmap(self.pm)
#鼠标事件
    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.is_follow_mouse = True
            self.mouse_drag_pos = event.globalPos() - self.pos()
            event.accept()
            self.setCursor(QCursor(Qt.OpenHandCursor))
 
    def mouseMoveEvent(self, event):
        if Qt.LeftButton 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
        self.setCursor(QCursor(Qt.ArrowCursor))
 复制代码# *_* coding : UTF-8 *_*
# author  :  Leemamas
# 开发时间  :  2021/5/20  3:06
 
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
 
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.start(100)
 
 
    def randomAct(self):
        # 读取图片不同的地址,实现动画效果
        if self.key<21:
            self.key+=1
        else:
            self.key=0
 
        self.pic_url = 'source\Zombie\Zombie_' + str(self.key) + '.png'
        self.pm = QPixmap(self.pic_url)
        if not self.is_follow_mouse:
            # 实现行进效果
            if self.w>0:
                self.w-=2
            else:
                self.w=1400
            self.move(self.w, self.h)
        self.lbl.setPixmap(self.pm)
 
 
 
    def initUi(self):
        screen = QDesktopWidget().screenGeometry()
        self.w=1400
        self.h=800
        self.setGeometry(self.w,self.h,300,300)
        # self.setWindowTitle('mypet')
        self.lbl = QLabel(self)
        self.key=0
        self.pic_url='source\Zombie\Zombie_'+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()
        # self.repaint()
 
 
    #系统托盘
    def tray(self):
        tp=QSystemTrayIcon(self)
        tp.setIcon(QIcon('source\Zombie\Zombie_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.is_follow_mouse = True
            self.mouse_drag_pos = event.globalPos() - self.pos()
            event.accept()
            self.setCursor(QCursor(Qt.OpenHandCursor))
 
    def mouseMoveEvent(self, event):
        if Qt.LeftButton 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
        self.setCursor(QCursor(Qt.ArrowCursor))
 
    def quit(self):
        self.close()
        sys.exit()
 
 
if __name__ == '__main__':
    app=QApplication(sys.argv)
    myPet=TablePet()
    sys.exit(app.exec_())
 
 
 
 | 
 |