Есть ли общая функция анимации в tkinter? - PullRequest
0 голосов
/ 28 сентября 2018

Знаете ли вы функцию в tkinter для изменения общего параметра виджета с течением времени (или для цикла)?Как функция перемещения автоматически меняет свои координаты. Есть ли что-то похожее, с чем я мог бы изменить параметр exten = x дуги над циклом for?Или я должен написать это для себя?

Обновление:

После вашего ответа Брайан Оукли я придумал это:

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 голосов
/ 28 сентября 2018

Метод 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...