Как поменять цвет фигуры в TKinter?

from tkinter import *
gl = Tk()
con = Canvas(gl, width=500, height=500, bg="white")
con.pack()
con.create_oval(110, 90, 130, 70, fill = 'blue', outline = 'blue')
gl.mainloop()

Есть небольшой участок кода на Python. Помогите пожалуйста сделать так что, сначала появляется овал с начальным цветом а потом, через секунд 5, он меняет на другой цвет. Заранее спасибо.


Ответы (1 шт):

Автор решения: insolor

Для планирования выполнения действия через какой-то промежуток времени нужно использовать метод after объекта Tk. Он принимает длительность задержки в миллисекундах и функцию, которую нужно выполнить.

Для изменения параметров объекта на холсте - метод itemconfig. Он принимает id объекта (число, которое возвращает метод создания объекта, в данном случае - create_oval) и изменяемые параметры.

from tkinter import *

gl = Tk()
con = Canvas(gl, width=500, height=500, bg="white")
con.pack()
oval_id = con.create_oval(110, 90, 130, 70, fill = 'blue', outline = 'blue')

def change_color():
    # Поменять цвет овала:
    con.itemconfig(oval_id, fill='yellow', outline='yellow')

# Выполнить change_color через 5 секунд
gl.after(5000, change_color)

gl.mainloop()
→ Ссылка