Создать функцию, которая рисует прямоугольник, используя x
и которая использует after()
, чтобы снова запустить себя через 100 мс с большим x
import tkinter as tk
def draw_next_rect(x):
w.create_rectangle(0, 100, x*10, 150, fill="#007700")
x += 1
# stop animation with x==51
if x < 51:
master.after(100, draw_next_rect, x)
master = tk.Tk()
w = tk.Canvas(master, width=500, height=500)
w.pack()
w.create_rectangle(0, 100, 500, 150, fill="#770077")
# start animation with x=0
draw_next_rect(0)
master.mainloop()
РЕДАКТИРОВАТЬ: аналогично ttk.Progressbar
import tkinter as tk
import tkinter.ttk as ttk
def draw_next_rect():
progressbar.step()
if progressbar['value'] < 50:
master.after(100, draw_next_rect)
master = tk.Tk()
progressbar = ttk.Progressbar(master, maximum=50.001, mode='indeterminate')
progressbar.pack()
draw_next_rect()
maximum=
должно быть немного больше, чем 50
, потому что для 50
он удаляет бар, когда value == maximum
master.mainloop ()