[python]Turtle 模块 初探

在学 python GUI 编程时,发现了一个有趣的库:Turtle 库。
Turtle 是 Python 语言中一个很流行的绘制图像的函数库。

from turtle import *
from datetime import *


# 移动到指定位置
def skip(step):
   penup()
   forward(step)
   pendown()


# 画指针
def drawpointer(name, length):
   reset()
   skip(-length * 0.1)
   begin_poly()
   forward(length * 1.1)
   end_poly()
   handForm = get_poly()
   register_shape(name, handForm)


# 初始化
def init():
   global hrpointer, minpointer, secpointer, weektext
   # 设置turtle Logo模式,朝北
   mode("logo")
   drawpointer("hrpointer", 90)
   drawpointer("minpointer", 130)
   drawpointer("secpointer", 140)
   hrpointer = Turtle()
   hrpointer.shape("hrpointer")
   minpointer = Turtle()
   minpointer.shape("minpointer")
   secpointer = Turtle()
   secpointer.shape("secpointer")
   secpointer.pencolor("red")
   for pointer in hrpointer, minpointer, secpointer:
       pointer.shapesize(3, 1, 1)
       pointer.speed(0)
   # 文字输出
   weektext = Turtle()
   weektext.hideturtle()
   weektext.penup()


# 设置表盘形状
def setupClock(radius):
   reset()
   #  clockPanel = Turtle()
   pensize(7)
   pencolor("blue")
   for i in range(60):
       skip(radius)
       if i % 5 == 0:
           forward(20)
           skip(-radius - 20)
       else:
           dot(5)
           skip(-radius)
       right(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.0000001
   minute = t.minute + second / 60.0
   hour = t.hour + minute / 60.0
   secpointer.setheading(6 * second)
   minpointer.setheading(6 * minute)
   hrpointer.setheading(30 * hour)
   tracer(False)
   weektext.forward(65)
   weektext.write(Week(t), align="center", font=("Courier", 14, "bold"))
   weektext.back(130)
   weektext.write(Date(t), align="center", font=("Courier", 14, "bold"))
   weektext.home()
   tracer(True)
   # 间隔100ms调用一次
   ontimer(tick, 100)


def main():
   tracer(False)
   init()
   setupClock(160)
   tracer(True)
   tick()
   mainloop()


if __name__ == '__main__':
   main() 

商城里有一个《欢迎使用 RPA》的机器人,觉得很有趣。所以也想自己做一个有趣的机器人,比如上文的时钟。上文的 python 代码只是个简单例子,可以再优化。
比如:
1. 背景设置,可以定时变化
2. 边框透明
3. 定时提醒(类似于护眼功能)

还有什么可以做的么······