#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. Ваш код ничего не делает для изменения цвета …