蛋疼的二进制时钟,蛋疼二进制时钟,[Python]代码#!


[Python]代码

#!usr/bin/env python'''author: JerryOnepython version: 2.7.1decription: a interesting binary clock writen by python and Tkinter'''import timefrom Tkinter import *from threading import Threadclass BinaryClock(Thread):    '''the class of the binary clcock'''    def __init__(self):        Thread.__init__(self)        self.root=Tk()        self.now_time=StringVar()        self.hour=[]        self.minute=[]        self.seconds=[]        self.rect=[]        self.rect_state=[]        self.draw()     def draw(self):        self.root.title("Jerry's Binary Clock")        self.canvas=Canvas(self.root, width=300, height=150, bg='white')        self.label=Label(self.root, text='Now Time:')        self.entry=Entry(self.root, textvariable=self.now_time)        self.label.place(x=12, y=2)        self.entry.pack()        for a in range(5):            self.canvas.create_line((a+1)*50, 0, (a+1)*50, 150)        for b in range(2):            self.canvas.create_line(0, (b+1)*50, 300, (b+1)*50)        self.rect.append(self.canvas.create_rectangle((0,0,50,50), fill='white'))           self.rect.append(self.canvas.create_rectangle((0,50,50,100), fill='white'))        self.rect.append(self.canvas.create_rectangle((0,100,50,150), fill='white'))        self.rect.append(self.canvas.create_rectangle((50,0,100,50), fill='white'))        self.rect.append(self.canvas.create_rectangle((50,50,100,100), fill='white'))        self.rect.append(self.canvas.create_rectangle((50,100,100,150), fill='white'))        self.rect.append(self.canvas.create_rectangle((100,0,150,50), fill='white'))        self.rect.append(self.canvas.create_rectangle((100,50,150,100), fill='white'))        self.rect.append(self.canvas.create_rectangle((100,100,150,150), fill='white'))        self.rect.append(self.canvas.create_rectangle((150,0,200,50), fill='white'))        self.rect.append(self.canvas.create_rectangle((150,50,200,100), fill='white'))        self.rect.append(self.canvas.create_rectangle((150,100,200,150), fill='white'))        self.rect.append(self.canvas.create_rectangle((200,0,250,50), fill='white'))        self.rect.append(self.canvas.create_rectangle((200,50,250,100), fill='white'))        self.rect.append(self.canvas.create_rectangle((200,100,250,150), fill='white'))        self.rect.append(self.canvas.create_rectangle((250,0,300,50), fill='white'))        self.rect.append(self.canvas.create_rectangle((250,50,300,100), fill='white'))        self.rect.append(self.canvas.create_rectangle((250,100,300,150), fill='white'))        self.canvas.pack()    def dec2bin(self, hour, minute, seconds):        self.hour=list(bin(hour))        self.hour=self.hour[2:]        while len(self.hour)<6:            self.hour.insert(0, '0')        self.minute=list(bin(minute))        self.minute=self.minute[2:]        while len(self.minute)<6:            self.minute.insert(0, '0')        self.seconds=list(bin(seconds))        self.seconds=self.seconds[2:]        while len(self.seconds)<6:            self.seconds.insert(0, '0')        self.rect_state=self.hour+self.minute+self.seconds    def run(self):        time.sleep(1)        while True:            self.now_time.set(str(time.strftime('  %Y-%m-%d   %H:%M:%S', time.localtime(time.time()))))            hour=int(time.localtime(time.time()).tm_hour)            minute=int(time.localtime(time.time()).tm_min)            seconds=int(time.localtime(time.time()).tm_sec)            self.dec2bin(hour, minute, seconds)            for i in range(18):                if self.rect_state[i] == '0':                    self.canvas.itemconfig(self.rect[i], fill='white')                elif self.rect_state[i] == '1':                    self.canvas.itemconfig(self.rect[i], fill='black')            time.sleep(1)if __name__ == '__main__':    binary_clock=BinaryClock()    binary_clock.setDaemon(True)    binary_clock.start()    binary_clock.root.mainloop()

评论关闭