如何使用tkinter构建数字时钟

用tkinter创建一个数字时钟,最终效果图如下

点击界面时,切换到日期,还可以再切换回来

看起来挺有趣的,开始code吧

首先创建出窗口

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的值来决定显示什么内容,大功告成啦。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案