✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。
我是Srlua小谢,在这里我会分享我的知识和经验。🎥
希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮
记得先点赞👍后阅读哦~ 👏👏
📘📚 所属专栏:Python
欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙
目录
动态闹钟
PyInstaller 库
运行实例:
设闹钟:
先将文件打包
可以拖拽到桌面~
win+R,输入cmd
在命令行输入,python clock.py 22-28
完整代码:
使用python实现动态闹钟
主要功能如下:
1、利用 turtle 等图形绘制库,绘制一个动态的数码管时钟,其中,时、分秒分别用不同颜色进行区分。
2、能够通过键盘设定闹钟,实现window 弹窗提醒。
3、通过PyInstaller 库转换成可执行文件。
PyInstaller 库
PyInstaller 是一个用于将 Python 应用程序打包成独立可执行文件的库。
它能够将 Python 脚本和相关的依赖项(如库、资源文件)打包成一个单独的可执行文件,这样用户可以在没有安装 Python 解释器或相关库的情况下运行应用程序。使用 PyInstaller 可以方便地创建跨平台的可执行文件,支持 Windows、Mac 和 Linux 等多个平台。
运行实例:
设闹钟:
先将文件打包
可以拖拽到桌面~
win+R,输入cmd
在命令行输入,python clock.py 22-28
clock.py为文件名,如果文件名不同,根据实际文件名修改
意思就是22点28分提醒
完整代码:
from turtle import *
from datetime import datetime
import time
import sys
from tkinter import messagebox, Tk
def drawGap():
penup()
fd(5)
def drawLine(draw):
drawGap()
pendown() if draw else penup()
fd(40)
drawGap()
right(90)
def drawDigit(d):
speed(0)
drawLine(True) if d in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 2, 6, 8] else drawLine(False)
left(90)
drawLine(True) if d in [0, 4, 5, 6, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
left(180)
penup()
fd(20)
def drawDate(date):
pencolor('Red')
for i in date:
if i == "-":
write('时', font=('Arial', 24, 'normal'))
pencolor('Green')
fd(40)
elif i == '=':
write('分', font=('Arial', 24, 'normal'))
pencolor('Blue')
fd(40)
elif i == '+':
write('秒', font=('Arial', 24, 'normal'))
else:
drawDigit(eval(i))
def main(alarm_time=None):
setup(800, 350, 200, 200)
hideturtle()
pensize(8)
tracer(False) # 设置快速模式
root = Tk()
root.withdraw() # 隐藏主窗口
while True:
clear() # 清除之前绘制的内容
penup()
goto(-300, 0)
current_time = datetime.now().strftime('%H-%M=%S+')
drawDate(current_time)
update() # 手动刷新屏幕
if alarm_time and current_time.startswith(alarm_time):
messagebox.showinfo("闹钟提醒", "时间到了!")
alarm_time = None # 清除闹钟时间,防止重复提示
time.sleep(1)
if __name__ == "__main__":
alarm_time = None
if len(sys.argv) > 1:
alarm_time = sys.argv[1] # 获取命令行输入的闹钟时间,格式为 HH-MM
main(alarm_time)
done()
希望对你有帮助!加油!
若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!