欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python 使用turtle实现实时钟表并生成exe

时间:2022-11-12 10:12:50|栏目:Python代码|点击:

源代码

python引入两个内置库turtle和datetime即可制作一个实时钟表,代码如下:

# 用turtle画时钟
# 以自定义shape的方式实现
import turtle as t
import datetime as d


def skip(step):  # 抬笔,跳到一个地方
    t.penup()
    t.forward(step)
    t.pendown()


def drawClock(radius):  # 画表盘
    t.speed(0)
    t.mode("logo")  # 以Logo坐标、角度方式
    t.hideturtle()
    t.pensize(7)
    t.home()  # 回到圆点
    for j in range(60):
        skip(radius)
        if (j % 5 == 0):
            t.forward(20)
            skip(-radius - 20)
        else:
            t.dot(5)
            skip(-radius)
        t.right(6)


def makePoint(pointName, len):  # 钟的指针,时针、分针、秒针
    t.penup()
    t.home()
    t.begin_poly()
    t.back(0.1 * len)
    t.forward(len * 1.1)
    t.end_poly()
    poly = t.get_poly()
    t.register_shape(pointName, poly)  # 注册为一个shape


def drawPoint():  # 画指针
    global hourPoint, minPoint, secPoint, fontWriter
    makePoint("hourPoint", 100)
    makePoint("minPoint", 120)
    makePoint("secPoint", 140)
    hourPoint = t.Pen()  # 每个指针是一只新turtle
    hourPoint.shape("hourPoint")
    hourPoint.shapesize(1, 1, 6)
    minPoint = t.Pen()
    minPoint.shape("minPoint")
    minPoint.shapesize(1, 1, 4)
    secPoint = t.Pen()
    secPoint.shape("secPoint")
    secPoint.pencolor('red')
    fontWriter = t.Pen()
    fontWriter.pencolor('gray')
    fontWriter.hideturtle()


def getWeek(weekday):
    weekName = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
    return weekName[weekday]


def getDate(year, month, day):
    return "%s-%s-%s" % (year, month, day)


def getRealtime():
    curr = d.datetime.now()
    curr_year = curr.year
    curr_month = curr.month
    curr_day = curr.day
    curr_hour = curr.hour
    curr_minute = curr.minute
    curr_second = curr.second
    curr_weekday = curr.weekday()
    t.tracer(False)
    secPoint.setheading(360 / 60 * curr_second)
    minPoint.setheading(360 / 60 * curr_minute)
    hourPoint.setheading(360 / 12 * curr_hour + 30 / 60 * curr_minute)
    fontWriter.clear()
    fontWriter.home()
    fontWriter.penup()
    fontWriter.forward(80)
    # 用turtle写文字
    fontWriter.write(getWeek(curr_weekday), align="center", font=("Courier", 14, "bold"))
    fontWriter.forward(-160)
    fontWriter.write(getDate(curr_year, curr_month, curr_day), align="center", font=("Courier", 14, "bold"))
    t.tracer(True)
    print(curr_second)
    t.ontimer(getRealtime, 1000)  # 每隔1000毫秒调用一次realTime()


def main():
    t.tracer(False)
    drawClock(160)
    drawPoint()
    getRealtime()
    t.tracer(True)
    t.mainloop()


if __name__ == '__main__':
    main()

引用模块:turtle,datetime

定义函数:

  • skip():重复指定动作
  • drawClock():画表盘
  • drawPoint():画指针
  • getWeek():显示星期
  • getDate():显示日期
  • getRealtime():显示实时时间
  • main():主函数

运行效果如下:

打包exe

也可打包为exe,这样在没有编译环境的情况下也可以运行(发给你的小伙伴展示一下你的技术,岂不美哉) 效果如下(不会打包看pyinstaller打包exe详细教程) 这里就不做演示了,直接上效果图

以上就是利用turtle库和datetime库制作实时钟表

上一篇:Python调用Prometheus监控数据并计算

栏    目:Python代码

下一篇:Python二维列表的创建、转换以及访问详解

本文标题:python 使用turtle实现实时钟表并生成exe

本文地址:http://www.codeinn.net/misctech/218810.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有