【Python/Tkinter】动图呈现

一、思路

在使用外部库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:注意图片要和代码文件在同一目录下噢!(实例代码设置的是相对路径)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值