本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
from turtle import * from datetime import * #移动到指定位置 def skip(step): penup() forward(step) pendown() #画指针 def drawpointer(name, length): reset() skip( - length * 0.1 ) begin_poly() forward(length * 1.1 ) end_poly() handForm = get_poly() register_shape(name, handForm) #初始化 def init(): global hrpointer, minpointer, secpointer, weektext #设置turtle Logo模式,朝北 mode( "logo" ) drawpointer( "hrpointer" , 90 ) drawpointer( "minpointer" , 130 ) drawpointer( "secpointer" , 140 ) hrpointer = Turtle() hrpointer.shape( "hrpointer" ) minpointer = Turtle() minpointer.shape( "minpointer" ) secpointer = Turtle() secpointer.shape( "secpointer" ) secpointer.pencolor( "red" ) for pointer in hrpointer, minpointer, secpointer: pointer.shapesize( 3 , 1 , 1 ) pointer.speed( 0 ) #文字输出 weektext = Turtle() weektext.hideturtle() weektext.penup() #设置表盘形状 def setupClock(radius): reset() # clockPanel = Turtle() pensize( 7 ) pencolor( "blue" ) for i in range ( 60 ): skip(radius) if i % 5 = = 0 : forward( 20 ) skip( - radius - 20 ) else : dot( 5 ) skip( - radius) right( 6 ) #星期文本 def Week(t): week = [ "星期一" , "星期二" , "星期三" , "星期四" , "星期五" , "星期六" , "星期日" ] return week[t.weekday()] #日期文本 def Date(t): y = t.year m = t.month d = t.day return "%s %d %d" % (y, m, d) #绘制表针动态显示 def tick(): t = datetime.today() second = t.second + t.microsecond * 0.0000001 minute = t.minute + second / 60.0 hour = t.hour + minute / 60.0 secpointer.setheading( 6 * second) minpointer.setheading( 6 * minute) hrpointer.setheading( 30 * hour) tracer( False ) weektext.forward( 65 ) weektext.write(Week(t), align = "center" ,font = ( "Courier" , 14 , "bold" )) weektext.back( 130 ) weektext.write(Date(t), align = "center" ,font = ( "Courier" , 14 , "bold" )) weektext.home() tracer( True ) #间隔100ms调用一次 ontimer(tick, 100 ) def main(): tracer( False ) init() setupClock( 160 ) tracer( True ) tick() mainloop() if __name__ = = '__main__' : main() |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/zenobia119/article/details/79039079