python交互式圖形編程實(shí)例(三)
本文實(shí)例為大家分享了python交互式圖形編程實(shí)例的第三部代碼,供大家參考,具體內(nèi)容如下
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#時(shí)鐘
from turtle import *
from datetime import *
def Skip(step):
penup()
forward(step)
pendown()
def mkHand(name, length):
#注冊(cè)Turtle形狀,建立表針Turtle
reset()
Skip(-length*0.1)
begin_poly() #開(kāi)始記錄畫筆坐標(biāo)
forward(length*1.1) #畫筆向前移動(dòng)length*1.1
end_poly() #結(jié)束記錄畫筆坐標(biāo)
handForm = get_poly() #記錄畫筆起始和結(jié)束坐標(biāo)位置(一個(gè)元組數(shù)據(jù))
register_shape(name, handForm) #注冊(cè)這個(gè)形狀
def Init():
global secHand, minHand, hurHand, printer
mode("logo")# 重置Turtle指向北
#建立三個(gè)表針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) #畫筆抬起,向前移動(dòng)“radius”具體
if i % 5 == 0:
forward(20) #如果能被5整除,就向前移動(dòng)20
Skip(-radius-20) #畫筆再回退到原位置
else:
dot(5) #畫一個(gè)5個(gè)像素的點(diǎn)
Skip(-radius) #畫筆再回退到原位置
right(6) #每次循環(huán)向右移動(dòng)6個(gè)弧度
def Week(t):
week = ["星期一", "星期二", "星期三",
"星期四", "星期五", "星期六", "星期日"]
return week[t.weekday()] #返回當(dāng)前是星期幾
def Date(t):
y = t.year
m = t.month
d = t.day
return "%s %d %d" % (y, m, d) #返回當(dāng)前日期
def Tick():
#繪制表針的動(dòng)態(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) #秒針設(shè)定的角度 一圈360度,一圈60秒 360/60 = 6
minHand.setheading(6*minute) #分針設(shè)定的角度 一圈360度,一圈60分鐘 360/60 = 6
hurHand.setheading(30*hour) #時(shí)針設(shè)定的角度 一圈360度,一圈12小時(shí) 360/12 = 30
tracer(False) #取消動(dòng)畫,字直接打在畫布上
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) #開(kāi)啟動(dòng)畫
ontimer(Tick, 100)#100ms后繼續(xù)調(diào)用tick
def main():
tracer(False)
Init() #把表針畫出來(lái)
SetupClock(160) #把表盤畫出來(lái)
tracer(True)
Tick() #讓表針動(dòng)起來(lái),文字寫上去
mainloop()
if __name__ == "__main__":
main()
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#鍵盤值查詢
from tkinter import *
root=Tk()
#創(chuàng)建一個(gè)框架,在這個(gè)框架中響應(yīng)事件
frame=Frame(root,width=256,height=256)
def callBack(event):
print(event.keysym)
frame.bind("<KeyPress>",callBack)
frame.pack()
#當(dāng)前框架被選中,意思是鍵盤觸發(fā),只對(duì)這個(gè)框架有效
frame.focus_set()
mainloop()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 19個(gè)值得學(xué)習(xí)的編程技巧
這篇文章主要介紹了python 19個(gè)值得學(xué)習(xí)的編程技巧,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-08-08
Python3讀取和寫入excel表格數(shù)據(jù)的示例代碼
這篇文章主要介紹了Python3讀取和寫入excel表格數(shù)據(jù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Python中將文件從一個(gè)服務(wù)器復(fù)制到另一個(gè)服務(wù)器的4種方法
Python中將文件從一個(gè)服務(wù)器復(fù)制到另一個(gè)服務(wù)器通常涉及到網(wǎng)絡(luò)傳輸,這個(gè)過(guò)程可以通過(guò)多種方式實(shí)現(xiàn),本文主要為大家介紹了4種常用方法,需要的可以參考下2024-10-10
Python Requests.post()請(qǐng)求失敗時(shí)的retry設(shè)置方式
這篇文章主要介紹了Python Requests.post()請(qǐng)求失敗時(shí)的retry設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Python游戲開(kāi)發(fā)之魔塔小游戲的實(shí)現(xiàn)
魔塔小游戲作為一款角色扮演RPG小游戲,一直深受大家的喜愛(ài)。本文將利用Python的cpgames模塊制作這一經(jīng)典小游戲,感興趣的可以跟隨小編一起動(dòng)手試一試2022-02-02
Python calendar日歷模塊的應(yīng)用案例演示
calendar模塊是python用來(lái)處理日歷的模塊,通過(guò)不同的api和格式輸出多種形式的日歷格式,下面就通過(guò)不同的api和參數(shù)來(lái)輸出和學(xué)習(xí)calendar模塊的用法2023-06-06
基于Python實(shí)現(xiàn)經(jīng)典植物大戰(zhàn)僵尸游戲
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)植物大戰(zhàn)僵尸游戲,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2022-05-05
Python實(shí)現(xiàn)動(dòng)態(tài)生成系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)到Word文檔
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)填寫相關(guān)數(shù)據(jù)庫(kù)信息后,生成系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)到word文檔,文中示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-06-06
scikit-learn處理缺失數(shù)據(jù)的方法與實(shí)踐
scikit-learn作為Python中廣泛使用的機(jī)器學(xué)習(xí)庫(kù),提供了多種工具和技術(shù)來(lái)幫助我們處理缺失數(shù)據(jù),本文將詳細(xì)介紹sklearn處理缺失數(shù)據(jù)的方法,并提供實(shí)際的代碼示例,需要的朋友可以參考下2024-06-06

