Tkinter中的自动交通灯

时间:2015-01-13 16:23:53

标签: python tkinter

我正在尝试在Tkinter中设计一个自动交通灯,但我似乎遇到了障碍,这是我到目前为止所做的:

from Tkinter import *


class TrafficLights(Frame):

    def __init__(self):
        Frame.__init__(self)
        self.master.title("Traffic Lights")
        self.grid()
        x='white'
        y='white'
        z='green'

        self.canvas = Canvas(self, width = 300, height = 400, bg = "black")
        self.canvas.grid(row = 0, column = 0)
        self.canvas.create_rectangle(100, 50, 200, 350)

        self.canvas.create_oval(100, 50, 200, 150, fill=x)
        self.canvas.create_oval(100, 150, 200, 250, fill=y)
        self.canvas.create_oval(100, 250, 200, 350, fill=z)
def main():
    TrafficLights().mainloop()

main()

我不知道该怎么做,我已经搜索了一些Tkinter教程,似乎找不到任何可以指向正确方向的东西。

对不起我应该更清楚,我希望它从绿色开始然后切换到琥珀色,然后是红色,然后再回到绿色,每个之间间隔2秒。

1 个答案:

答案 0 :(得分:1)

您想查看after...命令。一个简单的例子:

import tkinter as tk
# py2
#import Tkinter as tk

class Fun(tk.Tk):
    def __init__(self):
        tk.Frame.__init__(self)
        self.master.title("I say things")

        self.count = 0
        self.count_str = tk.StringVar()
        self.count_str.set(str(self.count))

        tk.Entry(self.master, textvariable=self.count_str).pack()

    def more_count(self):
        self.after(2000, self.more_count)
        self.count += 1
        self.count_str.set(str(self.count))


f = Fun()
f.more_count()
f.mainloop()