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代碼,但是這個東西它確實比較方便。。。
最後,感謝各位大佬耐心閱讀,歡迎使用~

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