Files
NFLmusic/nflmusic/assets/test.py
2025-02-11 20:32:45 +08:00

40 lines
1.1 KiB
Python

import tkinter as tk
from itertools import count
from PIL import Image, ImageTk
class AnimatedGIF(tk.Label):
def __init__(self, root, gif_file, *args, **kwargs):
tk.Label.__init__(self, root, *args, **kwargs)
self.root = root
self.gif_file = gif_file
self.frames = []
self.load_gif()
def load_gif(self):
"""Load the GIF frames."""
try:
with Image.open(self.gif_file) as img:
for frame in count(1):
self.frames.append(ImageTk.PhotoImage(img.copy()))
img.seek(frame)
except EOFError:
pass
self.show_animation()
def show_animation(self):
"""Display the animation."""
def update_frame(frame_index):
self.configure(image=self.frames[frame_index])
self.root.after(100, update_frame, (frame_index + 1) % len(self.frames))
update_frame(0)
if __name__ == "__main__":
root = tk.Tk()
gif_label = AnimatedGIF(root, r"C:\Users\Administrator.DESKTOP-0DNOS3E\AppData\Roaming\.NFLmusic\resource\images\loading.gif")
gif_label.pack()
root.mainloop()