使用pyqt5在桌面显示GIF动图

一.概述

本文我们将介绍如何使用python+pyqt5在桌面显示GIF图,使用pyinstaller打包成exe可执行文件

二.引言

网上很多代码都是画的,不能直接把冰墩墩画面在桌面,本文主要介绍如何把冰墩墩动图或图片显示在桌面,因没有冰墩墩图授权展示,故在本例中不直接使用冰墩墩图演示

三.环境安装

1.python安装和环境搭建

网上有很多教程,可以参考:安装Python - 廖雪峰的官方网站

2.安装pycharm,用来写python小项目

可参考:pycharm安装以及简单使用教程 - 太白*金星 - 博客园

3.安装pyqt5

在cmd窗口中直接使用pip install PyQt5 -i http://pypi.mirrors.ustc.edu.cn/simple/和pip install PyQt5-tools -i http://pypi.mirrors.ustc.edu.cn/simple/进行安装 

 4.安装pyinstallers

在cmd窗口中直接使用pip install pyinstaller -i http://pypi.mirrors.ustc.edu.cn/simple/进行安装

 四.使用代码写pyqt5程序显示gif动图

1.写加载gif图程序

import sys
from PyQt5.QtWidgets import QWidget,QDesktopWidget,QApplication,QLabel
from PyQt5.QtGui import QMovie,QCursor
from PyQt5.QtCore import Qt
import ui_qrc

class Example(QWidget):
    __dragWin = False
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        try:
            self.setWindowFlags(Qt.WindowStaysOnTopHint)
            # pyqt5设置窗体透明控件不透明
            self.setAttribute(Qt.WA_TranslucentBackground)
            self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool)
            # 加载gif动画
            self.movie = QMovie(":/images/bdd.gif")
            self.lab = QLabel("", self)
            self.lab.setAlignment(Qt.AlignCenter)
            self.lab.setMovie(self.movie)
            # 播放gif动画
            self.movie.start()
            #设置窗体位置和尺寸
            self.setGeometry(300, 300, 300, 500)
            self.center()
        except Exception as e: 
            print(e)

    def center(self):
        # 让窗体居中
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    def mousePressEvent(self, e):
        self.__dragWin = True
        self.__dragWin_x = e.x()
        self.__dragWin_y = e.y()
        self.setCursor(QCursor(Qt.OpenHandCursor))  # 更改鼠标图标

    def mouseMoveEvent(self, e):
        # 移动gif题
        if self.__dragWin == True:
            pos = e.globalPos()
            self.move(pos.x() - self.__dragWin_x, pos.y() - self.__dragWin_y)

    def mouseReleaseEvent(self, e):
        self.__dragWin = False
        self.setCursor(QCursor(Qt.ArrowCursor))

    def mouseDoubleClickEvent(self, e):
        '''
        双击关闭程序
        :param e:
        :return:
        '''
        QApplication.instance().exit()

# 运行程序
def run():
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())
run()

2.把图片转换为python文件

 创建一个文件ui.qrc,其中 images/bdd.gif 为冰墩墩gif动态图


    
        images/bdd.gif
    

使用pyrrc5 xxx.qrc -o xxx.py命令将ui.qrc转换为ui_qrc.py,然后再主要程序图导入ui_qrc.py,一定要进行此操作,否则无法将图片资源导入exe可执行文件

3.使用pyinstaller将py文件转换为可执行文件

使用pyinstaller -Fw xxx.py即可转换为可执行文件

4.展示成果

使用pyqt5在桌面显示GIF动图_第1张图片

 由于采用的是截图,不能展示动图,没有mac和linux系统,没有max和linux的可执行程序

 5.下载源码和Windows可执行exe地址

1.通过gitee下载 bdd: 学习pyqt5

2.通过百度网盘

链接:https://pan.baidu.com/s/1o_bCXtQ-FgYB9IGUPw57yw?pwd=dthh 
提取码:dthh

3.通过CSDN下载

pyqt5展示冰墩墩动图-Python文档类资源-CSDN下载

五.总结

此次只是采用了pyqt5展示gif动图,其实也可以展示很多动图,如冰墩墩图,我在代码中放置的是冰墩墩图,因不能直接展示,故没有采用冰墩墩图展示,还可以做更多的特效,我也是学习pyqt5中做的一个小工具,也可以自己通过python画一个图在上面展示,此次做的可能不好,还需继续努力学习

你可能感兴趣的:(python,qt5)