如何使用tkinter构建数字时钟
用tkinter创建一个数字时钟,最终效果图如下
点击界面时,切换到日期,还可以再切换回来
看起来挺有趣的,开始规划吧
首先创建出窗口
from tkinter import *
from time import strftime
root = Tk()
root.title("python时钟")
在窗口上安放一个Lable控件,控件的背景色是黑色,字体为白色,填充整个窗口
# 界面有多大,完全是靠字体撑起来的, 背景是黑色, 字体是白色
lbl = Label(root, font=("arial", 100, "bold"), bg="black", fg="white")
lbl.pack(anchor="center", fill="both", expand=1)
接下来,需要考虑如何让时间动起来,Label有一个alter方法,可以指定在一定时间后,执行某个函数,可以在这个函数里修改Label上显示的内容。
还要考虑点击Label之后,从显示小时转变为显示日期,因此需要给Label绑定一个click事件
mode = 'hour'
def showtime():
if mode == 'hour':
string = strftime("%H:%M:%S %p")
else:
string = strftime("%Y-%m-%d")
lbl.config(text=string)
lbl.after(1000, showtime) # 1秒钟以后执行time函数
def mouse_click(event):
global mode
if mode == 'hour':
mode = 'day'
else:
mode = 'hour'
lbl.bind("<Button>", mouse_click)
showtime()
mainloop()
在mouse_click函数里,改变mode的值,showtime函数根据mode的值来决定显示什么内容,大功告成啦。
评论