您知道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'
答案 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()