python交互式圖形編程實例(三)
更新時間:2017年11月17日 15:58:35 作者:hayden__wang
這篇文章主要為大家詳細介紹了python交互式圖形編程實例第三篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python交互式圖形編程實例的第三部代碼,供大家參考,具體內(nèi)容如下
#!/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() #記錄畫筆起始和結束坐標位置(一個元組數(shù)據(jù)) 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) #每次循環(huán)向右移動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ài)顯示 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后繼續(xù)調(diào)用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() #創(chuàng)建一個框架,在這個框架中響應事件 frame=Frame(root,width=256,height=256) def callBack(event): print(event.keysym) frame.bind("<KeyPress>",callBack) frame.pack() #當前框架被選中,意思是鍵盤觸發(fā),只對這個框架有效 frame.focus_set() mainloop()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決導入django_filters不成功問題No module named ''django_filter''
這篇文章主要介紹了解決導入django_filters不成功問題No module named 'django_filter',具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07解決Pycharm調(diào)用Turtle時 窗口一閃而過的問題
今天小編就為大家分享一篇解決Pycharm調(diào)用Turtle時 窗口一閃而過的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02python自動化測試三部曲之request+django實現(xiàn)接口測試
這篇文章主要介紹了python自動化測試三部曲之request+django實現(xiàn)接口測試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10Python筆記之a(chǎn) = [0]*x格式的含義及說明
這篇文章主要介紹了Python筆記之a(chǎn) = [0]*x格式的含義及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05