Как поменять цвет фигуры в 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()