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

2024-10-03 02:39:56 发布

您现在位置:Python中文网/ 问答频道 /正文

您知道tkinter中的函数随时间(或for循环)更改小部件的常规参数吗?比如move函数会自动改变它的坐标,有没有类似的东西可以改变for循环中弧的extent=x参数?还是我自己写

更新:

在你回答布赖恩·奥克利之后,我想到了这个:

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")

似乎没有configure函数,因为我得到:AttributeError:'int'对象没有属性'configure'


Tags: 函数for参数move部件tkinterconfiguredef
1条回答
网友
1楼 · 发布于 2024-10-03 02:39:56

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()

相关问题 更多 >