python交互式图形编程实例(三)


Posted in Python onNovember 17, 2017

本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#时钟

from turtle import *
from datetime import *
 
def Skip(step):
  penup()
  forward(step)
  pendown()
 
def mkHand(name, length):
  #注册Turtle形状,建立表针Turtle
  reset()
  Skip(-length*0.1)
  begin_poly() #开始记录画笔坐标
  forward(length*1.1) #画笔向前移动length*1.1
  end_poly()  #结束记录画笔坐标
  handForm = get_poly() #记录画笔起始和结束坐标位置(一个元组数据)
  register_shape(name, handForm) #注册这个形状
 
def Init():
  global secHand, minHand, hurHand, printer
  mode("logo")# 重置Turtle指向北
  #建立三个表针Turtle并初始化
  mkHand("secHand", 125) 
  mkHand("minHand", 130)
  mkHand("hurHand", 90)
  secHand = Turtle()
  secHand.shape("secHand")
  minHand = Turtle()
  minHand.shape("minHand")
  hurHand = Turtle()
  hurHand.shape("hurHand")
  for hand in secHand, minHand, hurHand:
    hand.shapesize(1, 1, 3)
    hand.speed(0)
  #建立输出文字Turtle
  printer = Turtle()
  printer.hideturtle() #隐藏画笔
  printer.penup()
   
def SetupClock(radius):
  #建立表的外框
  reset()
  pensize(7) #画笔大小
  for i in range(60):
    Skip(radius) #画笔抬起,向前移动“radius”具体
    if i % 5 == 0:
      forward(20) #如果能被5整除,就向前移动20
      Skip(-radius-20) #画笔再回退到原位置
    else:
      dot(5) #画一个5个像素的点
      Skip(-radius) #画笔再回退到原位置
    right(6) #每次循环向右移动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.000001 #精确到微秒
  minute = t.minute + second/60.0 #精确的秒
  hour = t.hour + minute/60.0 #精确到分钟
  secHand.setheading(6*second) #秒针设定的角度 一圈360度,一圈60秒 360/60 = 6
  minHand.setheading(6*minute) #分针设定的角度 一圈360度,一圈60分钟 360/60 = 6
  hurHand.setheading(30*hour) #时针设定的角度 一圈360度,一圈12小时 360/12 = 30
   
  tracer(False) #取消动画,字直接打在画布上
  printer.forward(65)
  printer.write(Week(t), align="center",
         font=("Courier", 14, "bold"))
  printer.back(130)
  printer.write(Date(t), align="center",
         font=("Courier", 14, "bold"))
  printer.home()
  tracer(True) #开启动画
 
  ontimer(Tick, 100)#100ms后继续调用tick
 
def main():
  tracer(False)
  Init() #把表针画出来
  SetupClock(160) #把表盘画出来
  tracer(True) 
  Tick() #让表针动起来,文字写上去
  mainloop()
 
if __name__ == "__main__":    
  main()
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#键盘值查询

from tkinter import * 
  
root=Tk() 
  
#创建一个框架,在这个框架中响应事件 
frame=Frame(root,width=256,height=256) 
  
def callBack(event): 
  print(event.keysym) 
  
frame.bind("<KeyPress>",callBack) 
frame.pack() 
  
#当前框架被选中,意思是键盘触发,只对这个框架有效 
frame.focus_set() 
  
mainloop()

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

Python 相关文章推荐
python文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
Django中反向生成models.py的实例讲解
May 30 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
Jul 23 Python
Django Rest framework三种分页方式详解
Jul 26 Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 Python
Python多线程thread及模块使用实例
Apr 28 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
python使用建议与技巧分享(一)
Aug 17 Python
Python之qq自动发消息的示例代码
Feb 18 Python
Pytorch可视化的几种实现方法
Jun 10 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 #Python
python交互式图形编程实例(二)
Nov 17 #Python
python交互式图形编程实例(一)
Nov 17 #Python
Python金融数据可视化汇总
Nov 17 #Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 #Python
Python中super函数的用法
Nov 17 #Python
python使用正则表达式替换匹配成功的组
Nov 17 #Python
You might like
PHP新手上路(六)
2006/10/09 PHP
PHP安全配置
2006/12/06 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
JavaScript prototype属性使用说明
2010/05/13 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
Python 字典dict使用介绍
2014/11/30 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
python实现自动登录后台管理系统
2018/10/18 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
中专三年学习的个人自我评价
2013/12/12 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
公司授权委托书范文
2014/08/02 职场文书
2014年商场工作总结
2014/11/22 职场文书
财务人员个人工作总结
2015/02/27 职场文书
人口与计划生育责任书
2015/05/09 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
详解Python函数print用法
2021/06/18 Python
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
python解析json数据
2022/04/29 Python