Python+Tkinter绘制一个数字时钟
这篇文章主要为大家详细介绍了Python使用Tkinter绘制一个数字时钟,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Tkinter 实现上述功能并不复杂,只要使用 Tkinter 的相关组件和一些简单的逻辑处理即可,在编写这个案例的过程中大家要做到温故而知新。
程序代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | from tkinter import * from time import strftime root = Tk() root.geometry( '500x350+300+300' ) root.iconbitmap( 'C:/Users/Administrator/Desktop/C语言中文网logo.ico' ) root.title( "C语言中文网出品" ) # 设置文本标签 lb = Label(root, font = ( "微软雅黑" , 50 , "bold" ), bg = '#87CEEB' , fg = "#B452CD" ) lb.pack(anchor = "center" , fill = "both" , expand = 1 ) # 定义一个mode标志 mode = 'time' # 定义显示时间的函数 def showtime(): if mode = = 'time' : #时间格式化处理 string = strftime( "%H:%M:%S %p" ) else : string = strftime( "%Y-%m-%d" ) lb.config(text = string) # 每隔 1秒钟执行time函数 lb.after( 1000 , showtime) # 定义鼠标处理事件,点击时间切换为日期样式显示 def mouseClick(event): global mode if mode = = 'time' : # 点击切换mode样式为日期样式 mode = 'date' else : mode = 'time' lb.bind( "<Button>" , mouseClick) # 调用showtime()函数 showtime() # 显示窗口 mainloop() |
程序运行结果如下:
图1:简单的数字时钟
通过上述代码就实现了一个简单的数字时钟,是不是非常的简单。
补充
除了数字时钟,Tkinter还能绘制一个简易的钟表
具体实现代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # coding:utf-8 from tkinter import * import math,time def points(): for i in range ( 1 , 13 ): x = 200 + 130 * math.sin( 2 * math.pi * i / 12 ) y = 200 - 130 * math.cos( 2 * math.pi * i / 12 ) canvas.create_text(x,y,text = i) def createline(radius,line_width,rad): global List global i List = [] x = 200 + radius * math.sin(rad) y = 200 - radius * math.cos(rad) i = canvas.create_line( 200 , 200 ,x,y,width = line_width) List .append(i) root = Tk() root.resizable( 0 , 0 ) canvas = Canvas(root,width = 400 ,height = 500 ,bd = 0 ,highlightthickness = 0 ) canvas.pack() canvas.create_oval( 50 , 50 , 350 , 350 ) points() while 1 : tm = time.localtime() t = time.asctime(tm) t_hour = 0 if tm.tm_hour< = 12 : t_hour = tm_hour else : t_hour = tm.tm_hour - 12 rad1 = 2 * math.pi * (t_hour + tm.tm_min / 60 ) / 12 rad2 = 2 * math.pi * (tm.tm_min + tm.tm_sec / 60 ) / 60 rad3 = 2 * math.pi * tm.tm_sec / 60 createline( 50 , 6 ,rad1,) createline( 90 , 3 ,rad2) createline( 120 , 1 ,rad3) l = canvas.create_text( 170 , 450 ,text = t) root.update() time.sleep( 1 ) for item in List : canvas.delete(item) canvas.delete(l) root.update() mainloop() |
效果如下
到此这篇关于Python+Tkinter绘制一个数字时钟的文章就介绍到这了
原文链接:http://c.biancheng.net/tkinter/project-case.html