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 相关文章推荐
python列出目录下指定文件与子目录的方法
Jul 03 Python
Python实现查找系统盘中需要找的字符
Jul 14 Python
Selenium的使用详解
Oct 19 Python
python画图把时间作为横坐标的方法
Jul 07 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 Python
Python实现汇率转换操作
May 03 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
python从PDF中提取数据的示例
Oct 30 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 Python
python3读取文件指定行的三种方法
May 24 Python
Python代码实现双链表
May 25 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php strcmp使用说明
2010/04/22 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Python算法之栈(stack)的实现
2014/08/18 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
python控制台中实现进度条功能
2015/11/10 Python
jupyter安装小结
2016/03/13 Python
详解Python字典小结
2018/10/20 Python
py-charm延长试用期限实例
2019/12/22 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
白色公司:The White Company
2017/10/11 全球购物
国际商务英语专业求职信
2014/07/08 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
退学证明范本3篇
2014/10/29 职场文书
2014年社区工作总结
2014/11/18 职场文书
房产分割协议书范文
2014/11/21 职场文书
投诉信格式范文
2015/07/02 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang