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]

posted @ 2023-06-18 02:07  LittleDuo  阅读(89)  评论(0)    收藏  举报