Python实战:拥有设闹钟功能的可视化动态闹钟的实现


✨✨ 欢迎大家来访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, Tkdef 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 = Noneif len(sys.argv) > 1:alarm_time = sys.argv[1]  # 获取命令行输入的闹钟时间,格式为 HH-MMmain(alarm_time)done()

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6-5,web3浏览器链接区块链(react+区块链实战)

6-5,web3浏览器链接区块链(react区块链实战) 6-5 web3浏览器链接区块链(调用读写合约与metamask联动) 6-5 web3浏览器链接区块链(调用读写合约与metamask联动) 这里就是浏览器端和智能合约的交…

高职Web全栈式开发实训室解决方案

一、专业背景 随着网络普及和发展,网站作为一种很强大的工具和平台愈来愈融入了人们的生活,而与用户关系最密切的前端技术也逐渐获得应有的重视。咱们能够看到前端重构的行业发展潜力巨大,各大知名的网络公司对前端人才的求饥若渴。近年来HT…

DID差分模型案例集(传统DID、队列DID、渐近DID、空间DID、PSM-DID)

双重差分(DID)模型是一种广泛应用于经济学、社会学等领域的统计方法,主要用于评估政策或事件的因果效应。以下是DID模型几个重要变体的简要介绍: 1、传统DID(Traditional DID):这是DID模型的基…

【Qt 从基础】创建一个 Qt 项目后,自动生成的代码和文件分析

文章目录 1. Sources 目录下,main.cpp 文件的分析🐧2. Headers 目录下,widget.h 文件的分析🐧3. Sources 目录下,widget.cpp 文件的分析🐧4. Forms 目录下,widget.ui 文件的分析🐧5.…

Perl词法作用域:自定义编程环境的构建术

🎭 Perl词法作用域:自定义编程环境的构建术 在Perl编程中,词法作用域(lexical scoping)是一种控制变量可见性的方式,它允许变量在特定的作用域内可见,从而避免变量名的冲突。Perl提供了灵活的机…

目标检测基本标注工具-labelImg安装与使用

🍉一、安装 1.1 打开conda创建虚拟环境🎈 conda create -n labelImg python3.8 -y 1.2 激活labelImg虚拟环境🎈 activate labelImg1.3 安装labelImg🎈 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple lab…

Protobuf: 大数据开发中的高效数据传输利器

作为一名大数据开发者,我经常需要处理海量的数据传输和存储。在这个过程中,选择一个高效、可靠的数据序列化工具至关重要。今天,我想和大家分享一下我在项目中使用 Protobuf 的经历。 目录 故事背景Protobuf 简介优点: 实战案例示…

uView、ColorUI与Vant框架的深入分析与案例实践

摘要: 随着移动开发技术的不断发展,框架的选择对于项目的成功至关重要。本文将对uView、ColorUI和Vant这三个主流移动端框架进行深入分析,探讨它们的优缺点,并通过实际案例展示如何根据项目需求选择合适的框架。 一、引言 在移动…

ls命令学习记录1

ls 1.列出文件和文件夹 ls命令应该是人们使用次数最多的一个命令。毕竟,在处理和使用目录中的文件之前,必须先知道目录中有哪些文件。这就是ls命令发挥作用的地方,因为它能够列出目录中的文件和子目录。 说明 ls命令听起来可能很简单&…

【人工智能】-- 受限玻尔兹曼机

个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉受限玻尔兹曼机 🍈RBM的结构 🍍RBM的架构图 🍍RBM的经典实现 &…

函数练习•二 进阶题

# 进阶题 # 1.封装函数,比较某两个数的大小,返回较大的一个 # 2.封装函数,判断某个数是否是素数,返回结果(True或False) # 3.封装函数,计算2-100之间素数的个数,返回结果 # 挑战题(选做) # 1,封装函数&am…

给事务如何加行锁,表锁

因为MVCC,所以锁都不会阻止读 在 MySQL 中,UPDATE 等语句会自动获取被更新行的行级写锁(排他锁) 给事务加锁,而不是给语句加锁 加行锁后,等事务提交或者回滚就会自动释放 加行读锁后保证读时候没人修改…

Python中对asyncio的实际使用

前言:一般涉及异步编程我都无脑用celery,但是最近在做一个项目,项目不大,也不涉及定时任务,所以就用了asyncio。 asyncio是python自带的模块,比celery轻量,使用起来也简单。以前学习过&#xf…

WINDOWS核心编程-----框架

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

论文阅读【时空+大模型】ST-LLM(MDM2024)

论文阅读【时空大模型】ST-LLM(MDM2024) 论文链接:Spatial-Temporal Large Language Model for Traffic Prediction 代码仓库:https://github.com/ChenxiLiu-HNU/ST-LLM 发表于MDM2024(Mobile Data Management&#xf…

ArrayList----源码分析

源码中的简介: List接口的可调整数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,这个类还提供了一些方法来操作内部用于存储列表的数组的大小。(这个类大致相当于Vector,只是它是不同…

TC软件许可优化解决方案

TC功能说明 Teamcenter 软件是西门子面向全球范围开发的数字化全生命周期管理(PLM)系统,将人员、产品、流程、知识有机联系在一起,以帮助企业实现数字化协同、数字化赋能、 数字化转型,从而推动企业产品创新与效率提升…

Delphi 里防止程序多次运行

Delphi 里防止程序多次运行 在dpr里加入以下红色部分代码 program Main; uses Vcl.Forms, Windows, SysUtils, uMain in uMain.pas {MainForm}; {$R *.res} Var hMutex:HWND; Ret:Integer; begin Application.Initialize; Application.MainFormOnTaskbar : T…

Java链表LinkedList经典题目

一.LinkedList的方法 首先先看一下链表的方法: 方法解释boolean add(E e)尾插void add(int index, E element)将 e 插入到 index 位置boolean addAll(Collection c)尾插 c 中的元素E remove(int index)删除 index 位置元素boolean remove(Object o)删除遇到的第一…

【EIScopus稳检索-高录用】第五届大数据与社会科学国际学术会议(ICBDSS 2024)

大会官网:www.icbdss.org 大会时间:2024年8月16-18日 大会地点:中国-上海 接受/拒稿通知:投稿后1-2周内 收录检索:EI,Scopus *所有参会者现场均可获取参会证明,会议通知(邀请函)&…