как заставить верхний круг изменить цвет на 7 секунд

#python-3.x #tkinter

Вопрос:

изначально я сделал покупку со светофором, я хочу, чтобы цвета менялись поочередно, но это не работает, возможно, придется разделить на несколько классов? пожалуйста, скажи мне, что я делаю не так

 from tkinter import Tk, Canvas, Frame, BOTH
import time  # time.sleep(3)


class TrafficLight(Frame):
    __canv_loc = [(10, 10, 80, 80), (10, 80, 80, 150), (10, 150, 80, 220)]
    _color_off = 'grey0'
    _color_on = ['red', 'yellow', 'green']
    _time_on = [7, 2, 7]

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):  # заготовка светофора
        (...)


    def red_light(self):
        self.master.title('Светофор')
        self.pack(fill=BOTH, expand=1)
        self.initUI()
        canvas = Canvas(self)
        canvas.create_oval(
            self.__canv_loc[0], outline='grey0',
            fill=self._color_on[0], width=2
        )
        canvas.pack(fill=BOTH, expand=1)

    def running(self):
        self.red_light()


def main():
    root = Tk()
    ex = TrafficLight()
    root.geometry("330x350 300 300")
    root.mainloop()


main()
tl = TrafficLight()
 

Комментарии:

1. Попробуй использовать root.after() ? Вы не сказали, что не так с этим кодом, который у вас есть

2. Ваш код ничего не делает для изменения цвета …