開發背景
玩電腦總是忘記休息,手機定鬧鐘太麻煩,在網上也沒有搜索到符合我需求的極簡軟件,故寫一個極簡(Low)版番茄鍾定時提醒自己休息。。。
程序界面及使用介紹
在輸入框中輸入倒計時分鐘數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代碼,但是這個東西它確實比較方便。。。
最後,感謝各位大佬耐心閱讀,歡迎使用~