使用turn库制作时钟小程序
浏览:560 次

步骤1:导入模块
进口海龟
从datetime导入*
第2步:抬起刷子,向前移动一段距离,将其放下
def跳过(步骤):
乌龟.penup()
乌龟向前(步)
乌龟.pendown()
def mkHand(名称,长度):
#注册海龟形状并创建针形海龟
龟.重置()
跳过(-长度*0.1)
#开始记录多边形的顶点。当前乌龟位置是多边形的第一个顶点。
乌龟begin_ poly()
乌龟向前(长度*1.1)
#停止记录多边形的顶点。当前乌龟位置是多边形的最后一个顶点。连接到第一个顶点。
乌龟end_多边形()
#返回上次记录的多边形。
handForm=乌龟。get_ poly()
乌龟register_形状(名称,handForm)
定义初始化():
全局secHand、minHand、hurHand、打印机
#重置海龟点北
龟模式(“logo”)
#创建三个手表指针Turtle并初始化
mkHand(“secHand”,135)
mkHand(“最小手”,125)
mkHand(“hurHand”,90)
secHand=乌龟。乌龟()
secHand.shape(“secHand”)
minHand=乌龟。乌龟()
minHand.形状(“minHand”)
hurHand=乌龟。乌龟()
hurHand.形状(“hurHand”)
对于secHand、minHand、hurHand:
手整形(1、1、3)

手动速度(0)
#创建输出文本Turtle
printer=乌龟。乌龟()
#隐藏笔刷的旋转形状
打印机.hideture()
printer.penup()
def设置时钟(半径):
#创建表格的外部框架
龟.重置()
乌龟。沉思(7)
对于范围(60)中的i:
跳跃(半径)
如果i%5==0:
乌龟前进(20)
跳过(-半径-20)
跳跃(半径+20)
如果i==0:
乌龟写入(int(12),align=“center”,font=(“Courier”,14,“bold”))
elif i==30:
跳过(25)
乌龟写入(int(i/5),align=“center”,font=(“Courier”,14,“bold”)
跳过(-25)
elif(i==25或i==35):
跳过(20)
乌龟写入(int(i/5),align=“center”,font=(“Courier”,14,“bold”)
跳过(-20)
否则:
乌龟写入(int(i/5),align=“center”,font=(“Courier”,14,“bold”)
跳过(-半径-20)
否则:
龟点(5)
跳过(-半径)
乌龟,右(6)
def周(t):
week=[“周一”,“周二”,“周三”,
周四、周五、周六、周日]

返回周[t.weekday()]
定义日期(t):
y=t年
m=t月
d=t.天
返回“%s%d%d”%(y,m,d)
定义刻度():
#拉伸针动态显示
t=datetime.today()
秒=秒+微秒*0.000001
分钟=t分钟+秒/60.0
小时=t小时+分钟/60.0
secHand。设置航向(6*秒)
minHand。设置航向(6*分钟)
手。设置航向(30*小时)
乌龟示踪剂(假)
打印机转发(65)
打印机写入(周(t),align=“中心”,
font=(“Courier”,14,“bold”)
打印机背面(130)
打印机写入(日期(t),align=“中心”,
font=(“Courier”,14,“bold”)
printer.home()
龟.示踪剂(真)
#100ms后继续呼叫滴答
乌龟ontimer(勾选,100)
定义main():
#打开/关闭乌龟动画,并设置更新图形的延迟。
乌龟示踪剂(假)
初始化()
设置时钟(160)
龟.示踪剂(真)
勾选()
乌龟.mainloop()
如果name==“main”:
main()