python 대화 형 그래 픽 프로 그래 밍 인 스 턴 스(3)

본 논문 의 사례 는 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() 
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기