一、思路
在使用外部库Tkinter时,我们有时会需要将一个动图呈现在窗口上,可是Tkinter并不直接支持这一操作,但是我们可以通过把动图拆分成每一帧然后依次呈现,从而达到让图片动起来的效果
二、实例
假如我们想把该动图呈现在窗口上
from tkinter import *
root = Tk()
root.geometry('285x285')
image_label = Label() # 图片的承载者
i = 0
frames = []
path = 'fight.gif'
while i < 500:
frames.append([PhotoImage(file=path, format='gif -index %i' % (i // 12.5))]) # 这里的‘gif -index'是固定形式
i += 12.5
def image_load(index: int):
frame = frames[index]
index += 1
image_label.config(image=frame)
root.after(100, image_load, index % 40) # 100毫秒后再次执行该函数
image_label.place(width=285, height=285)
image_load(0)
root.mainloop()
Tips:注意图片要和代码文件在同一目录下噢!(实例代码设置的是相对路径)