Python实现简单的闹钟/倒计时/番茄钟软件并打包成exe

开发背景

玩电脑总是忘记休息,手机定闹钟太麻烦,在网上也没有搜索到符合我需求的极简软件,故写一个极简(Low)版番茄钟定时提醒自己休息。。。

程序界面及使用介绍

图1-1 程序界面

在输入框中输入倒计时分钟数t(0<t<60)并点击开始,此时程序界面会隐藏,等倒计时完成后,会播放3次alarm.mp3文件(程序同级目录下的音频文件),播放完毕后界面会恢复显示。

程序源码

import datetime
import os
from playsound import playsound
import tkinter
# 设定set_minute分钟后响铃
def setTime(set_minute):
    global set_time
    #获得当前时间
    now_time = datetime.datetime.now()
    if now_time.minute + set_minute > 60:
        hour = now_time.hour + 1
        if hour > 23:
            hour = 0
        minute = set_minute - 60 + now_time.minute
    else:
        hour = now_time.hour
        minute = now_time.minute + set_minute
    second = 0
    set_time = datetime.datetime(now_time.year,now_time.month,now_time.day,hour,minute,second)

def start(set_minute=30):
    global set_time,root
    root.withdraw()#隐藏窗口
    setTime(set_minute)
    print(set_time)
    flag = 0
    while True:
        now_time = datetime.datetime.now()
        
        if now_time.__ge__(set_time):
            print(now_time)
            while flag < 3:
                playsound("./alarm.mp3")
                flag = flag + 1
            flag = 0
            root.update()#显示窗口
            root.deiconify()
            break
if __name__ == "__main__":
    root  = tkinter.Tk()
    root.geometry("200x50+1300+0")
    root.resizable(False,False)
    # 进入消息循环
    set_time = datetime.datetime.now()
    entry_minute = tkinter.Entry(root)
    entry_minute.pack()
    start_button = tkinter.Button(root, text ="开始",command=lambda:start(int(entry_minute.get())))
    start_button.pack()
    # root.wm_attributes('-topmost',1)
    root.mainloop()

使用Pyinstaller打包成exe

  • 命令:pyinstaller -F -w alarm_clock.py

  • 参数解释
    ​ -F 表示生成单个可执行文件;
    ​ -D –onedir 创建一个目录,包含 exe 文件,但会依赖很多文件(默认选项)。
    ​ -w 表示去掉控制台窗口,这在 GUI 界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!;
    ​ -c –console, –nowindowed 使用控制台,无界面 (默认);
    ​ -p 表示你自己自定义需要加载的类路径,一般情况下用不到;
    ​ -i 表示可执行文件的图标。

程序下载链接

链接:https://pan.baidu.com/s/1OZ2kJrGaH5ob3–TEeqA4Q
提取码:waw8

备注

代码写的十分粗糙,很多地方有bug,比如软件不能在晚上11点多的时候使用,否则一旦设置的响铃时间为第二天凌晨,程序可能会有点问题;输入框没有做校验,必须为1~59之间的数字…
软件很糙,但是整体符合我的需求。haha…
虽然不太喜欢写python代码,但是这个东西它确实比较方便。。。
最后,感谢各位大佬耐心阅读,欢迎使用~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章