python实现简易动态时钟


Posted in Python onNovember 19, 2018

本文实例为大家分享了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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python3中初学者应会的一些基本的提升效率的小技巧
Mar 31 Python
Python_LDA实现方法详解
Oct 25 Python
基于Python中capitalize()与title()的区别详解
Dec 09 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
Mar 08 Python
python 堆和优先队列的使用详解
Mar 05 Python
Python判断对象是否为文件对象(file object)的三种方法示例
Apr 26 Python
python腾讯语音合成实现过程解析
Aug 01 Python
Keras在训练期间可视化训练误差和测试误差实例
Jun 16 Python
Python 如何调试程序崩溃错误
Aug 03 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
浅析pandas随机排列与随机抽样
Jan 22 Python
python使用Turtle库绘制动态钟表
Nov 19 #Python
python+PyQT实现系统桌面时钟
Jun 16 #Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 #Python
Window环境下Scrapy开发环境搭建
Nov 18 #Python
Python中安装easy_install的方法
Nov 18 #Python
win7 x64系统中安装Scrapy的方法
Nov 18 #Python
python实现简易数码时钟
Feb 19 #Python
You might like
用PHP连接Oracle for NT 远程数据库
2006/10/09 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
django model去掉unique_together报错的解决方案
2016/10/18 Python
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
Python内置模块turtle绘图详解
2017/12/09 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
用python生成1000个txt文件的方法
2018/10/25 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Django学习之文件上传与下载
2019/10/06 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
现金会计岗位职责
2013/12/05 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
悬空寺导游词
2015/02/05 职场文书
全陪导游词开场白
2015/05/29 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang