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中的包和模块实例
Nov 22 Python
python中zip()方法应用实例分析
Apr 16 Python
Django框架教程之正则表达式URL误区详解
Jan 28 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
Python button选取本地图片并显示的实例
Jun 13 Python
python opencv 批量改变图片的尺寸大小的方法
Jun 28 Python
python单向循环链表原理与实现方法示例
Dec 03 Python
python将unicode和str互相转化的实现
May 11 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 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
yii框架builder、update、delete使用方法
2014/04/30 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
js实现星星打分效果
2020/07/05 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
Python实用日期时间处理方法汇总
2015/05/09 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python最小二乘法矩阵
2019/01/02 Python
python命令行参数用法实例分析
2019/06/25 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
python Gabor滤波器讲解
2020/10/26 Python
Linux如何为某个操作添加别名
2015/02/05 面试题
物流专业求职计划书
2014/01/10 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
师范毕业生求职信
2014/07/11 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
600字作文之感受大自然
2019/11/27 职场文书