如何使用tkinter構(gòu)建數(shù)字時(shí)鐘
用tkinter創(chuàng)建一個(gè)數(shù)字時(shí)鐘,最終效果圖如下

點(diǎn)擊界面時(shí),切換到日期,還可以再切換回來(lái)

看起來(lái)挺有趣的,開(kāi)始規(guī)劃吧
首先創(chuàng)建出窗口
from tkinter import *
from time import strftime
root = Tk()
root.title("python時(shí)鐘")
在窗口上安放一個(gè)Lable控件,控件的背景色是黑色,字體為白色,填充整個(gè)窗口
# 界面有多大,完全是靠字體撐起來(lái)的, 背景是黑色, 字體是白色
lbl = Label(root, font=("arial", 100, "bold"), bg="black", fg="white")
lbl.pack(anchor="center", fill="both", expand=1)
接下來(lái),需要考慮如何讓時(shí)間動(dòng)起來(lái),Label有一個(gè)alter方法,可以指定在一定時(shí)間后,執(zhí)行某個(gè)函數(shù),可以在這個(gè)函數(shù)里修改Label上顯示的內(nèi)容。
還要考慮點(diǎn)擊Label之后,從顯示小時(shí)轉(zhuǎn)變?yōu)轱@示日期,因此需要給Label綁定一個(gè)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秒鐘以后執(zhí)行time函數(shù)
def mouse_click(event):
global mode
if mode == 'hour':
mode = 'day'
else:
mode = 'hour'
lbl.bind("<Button>", mouse_click)
showtime()
mainloop()
在mouse_click函數(shù)里,改變mode的值,showtime函數(shù)根據(jù)mode的值來(lái)決定顯示什么內(nèi)容,大功告成啦。
評(píng)論
圖片
表情
