Вы в основном вызываете функцию add()
и передаете значение None
всем обратным вызовам в этих строках, когда add()
возвращает None
.
canvas.after(1000, add(image1, 50, 50))
canvas.after(1000, add(image2, 70, 50))
canvas.after(1000, add(image3, 90, 50))
Посмотри внимательно, что тебе не хватает. Синтаксис функции after()
:
after( ms, func, args )
Параметры after()
:
мс = миллисекунды
func = функция без круглых скобок ()
, after
просто хотят получить ссылку на функцию.
args = Параметр функции, если есть
Также вы дали 1000 мс каждой after
функции, что означает, что все они вызываются через 1 сек.
Правильный способ сделать это.
from tkinter import *
window = Tk()
canvas = Canvas(window, width=300, height=300)
canvas.pack()
def add(image, x, y):
canvas.create_image(x, y, image=image)
image1 = PhotoImage(file="images/AceHearts.png")
image2 = PhotoImage(file="images/AceClubs.png")
image3 = PhotoImage(file="images/AceDiamonds.png")
canvas.after(1000, add, image1, 50, 50) # run after 1 sec
canvas.after(2000, add, image2, 70, 50) # run after 2 sec
canvas.after(3000, add, image3, 90, 50) # run after 3 sec
window.mainloop()