python pyqt5播放png序列图片 桌面鸭子宠物,可拖拽
python pyqt5播放png序列图片
# -*- encoding: utf-8 -*-
"""
@File: pet.py
@Author: Little duo
@Time: 2023/3/5 22:34
@Contact: 1049041957@qq.com
@License: (C)Copyright 2021-2022, Little duo
"""
import os
import sys
from PyQt5.QtCore import QTimer, Qt
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QLabel
def generate_fixed_number(num):
num_str = str(num)
num_zero = 5 - len(num_str)
return "0" * num_zero + num_str
class MainWindow(QLabel):
def __init__(self):
super().__init__()
# 设置窗口无边框、透明并尺寸为200x200像素
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
self.setAttribute(Qt.WA_TranslucentBackground)
self.setGeometry(0, 0,
QApplication.desktop().screenGeometry().width(),
QApplication.desktop().screenGeometry().height())
self.setScaledContents(False) # 将图片缩放设置为False
self.showFullScreen() # 全屏显示
# 创建定时器并连接到槽函数
self.timer = QTimer(self)
self.timer.timeout.connect(self.change_image)
self.timer.start(1) # 切换图片速度
self.images = os.listdir(os.path.join(os.getcwd(), images_folder))
self.max_num = len(self.images) - 1
self.num = 0
self.set_image()
def set_image(self):
path = os.path.join(os.getcwd(), images_folder, self.images[self.num])
pixmap = QPixmap(path)
# 缩放图片像素大小
pixmap = pixmap.scaled(image_show_width, image_show_height)
self.setPixmap(pixmap)
def change_image(self):
self.num += 1
if self.num > self.max_num:
self.num = 0
self.set_image()
def mousePressEvent(self, event):
self.mouse_pos = event.globalPos() - self.pos()
def mouseMoveEvent(self, event):
self.move(event.globalPos() - self.mouse_pos)
if __name__ == '__main__':
images_folder = 'duck'
image_show_width = 512
image_show_height = 288
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
[附件下载地址:https://pan.baidu.com/s/1ONYZNuBzkPqr2lqgXKdcyg?pwd=1234]