tkinter中有通用的动画功能吗?

时间:2018-09-28 13:08:42

标签: python tkinter

您知道tkinter中有一个函数可以随时间(或for循环)更改小部件的一般参数吗?就像move函数自动更改其坐标一样,是否可以通过for循环更改圆弧的range = x参数?还是我应该自己写?

更新:

在您回答布莱恩·奥克利(Bryan Oakley)之后,我想到了这一点:

def rotate_arc_function():
    for d in range(90, 359):
        arc.configure(extent=d)
        root.update()
        time.sleep(.05)

但是我得到的弧形物体

arc = canvas.create_arc(20,20,100,100, extent=90, fill="green")

似乎没有配置功能,因为我得到:AttributeError:'int'对象没有属性'configure'

1 个答案:

答案 0 :(得分:1)

after方法可以在给定的时间后调用一个函数。要使其重复运行,每次调用该函数时都要调用after

示例:

import tkinter as tk

root = tk.Tk()
canvas = tk.Canvas(root, width=200, height=200, background="black")
canvas.pack(fill="both", expand=True)
canvas.create_arc(10, 10, 190, 190, extent=0, outline="red", tags=("arc",))

def change_extent():
    extent = float(canvas.itemcget("arc", "extent"))
    extent = extent + 5.0
    canvas.itemconfigure("arc", extent=extent)
    canvas.after(100, change_extent)

change_extent()

root.mainloop()