首页 > 编程 > Python > 正文

python实现简易动态时钟

2020-02-15 23:43:08
字体:
来源:转载
供稿:网友

本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下

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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表