利用Python編寫一個鬧鐘,治好你的拖延癥
導(dǎo)語
相信有不少人的鬧鐘是設(shè)成這樣的:
6:20
6:30
6:35
6:37
……
起床真是令人困擾的事情,有的人根本不用定鬧鐘,但有的人提前半個小時鬧鐘都叫不醒,你的鬧鐘怎么定的?
舉個粒子:
現(xiàn)在這天氣真的就很需要鬧鐘,每天8點不然真的醒不來
兩個鬧鐘都喊不起,最少需要三個鬧鐘。需要,而且每5分鐘一個。
我是起床困難戶{需要5-6個鬧鐘},但我能克服熬夜早點睡的時候,第二天只需要二、三個鬧鐘就能起來了。
我的鬧鐘都是每天晚上親自檢查好然后設(shè)置的,因為擔(dān)心漏掉了,怕早上遲到。
需要三個鬧鐘,2個隔比較近,1個隔10分鐘響,讓自己覺得賴床已經(jīng)好久,更開心的起床......
哈哈哈——今天的話就教教大家來制作一款小鬧鐘小程序~卡卡通通的外表才適合我嘛!
這款可愛的小鬧鐘是基于Tkinter做的界面哈——有界面更好看滴!
做的界面也是卡通的動漫的形象啦,當(dāng)然也是可以隨意修改很多界面背景、參數(shù)的哈。
一、小科普
1)time 模塊
在Python中包含了若干個能夠處理時間的庫,而time庫是最基本的一個,是Python中處理時間的標(biāo)準(zhǔn)庫。time庫能夠表達(dá)計算機(jī)時間,提供獲取系統(tǒng)時間并格式化輸出的方法,提供系統(tǒng)級精確計時功能(可以用于程序性能分析)。
time庫包含三類函數(shù),以下介紹常用的函數(shù):
- 時間獲取:time()、ctime()、gmtime()
- 時間格式化:strftime()、strptime()
- 程序計時:sleep()、perf_counter()
2)messagebox模塊
messagebox可用在消息提示框、警告框、詢問框、錯誤、關(guān)于等會話框,messagebox可以很方便實現(xiàn)相關(guān)對話框的彈出。
二、準(zhǔn)備中
1)環(huán)境安裝
該項目運(yùn)行環(huán)境:Python3、Pycharm、Pygame、Tkinter、time模塊等一些自帶的不一一介紹了哈。庫的安裝統(tǒng)一使用:
pip install +模塊名
或帶豆瓣鏡像源 pip install -i https://pypi.douban.com/simple/ +模塊名
2)素材(音樂+背景可修改)
三、開始敲代碼
1)導(dǎo)入模塊
from os import environ environ['PYGAME_HIDE_SUPPORT_PROMPT'] = '1' import pygame import time # 導(dǎo)入此模塊,獲取當(dāng)前時間 from tkinter import * from tkinter import messagebox #彈窗 import threading
2)界面設(shè)置
標(biāo)題,界面的大小寬度,文字等等都設(shè)置好了哈。
def sleeptime(hour, min, sec): return hour * 3600 + min * 60 + sec def GUI_TIME(): window = Tk() window.title('來自一位小可愛') window.geometry('505x430+300+100') canvas = Canvas(window, height=500, width=500) image_file = PhotoImage(file='01.gif') image = canvas.create_image(0, 0, anchor='nw', image=image_file) canvas.pack(side='top') Label(window, text='添加鬧鐘: ').place(x=130, y=200) Label(window,text = "帥的人已經(jīng)醒了,丑的人還在睡覺",fg = 'red').place(x = 140,y = 80) var_usr_name = StringVar() var_usr_name.set('24:59') entry_usr_name = Entry(window, textvariable=var_usr_name, background='pink') entry_usr_name.place(x=250, y=200)
3)獲取當(dāng)前實時時間
def gg1(): index = 0 try: my_hour,my_minute = start() except: messagebox.showwarning("提醒","請注意:是否為中文輸入法的:") index = 1 if(index == 0): window_sign_up = Toplevel(window) window_sign_up.attributes("-toolwindow", 1) window_sign_up.wm_attributes("-topmost", 1) window_sign_up.geometry('200x100+400+150') Label(window_sign_up, text='當(dāng)前時間為: ').place(x=0, y=10) window_sign_up.title('顧木子吖') b1 = Button(window_sign_up, text=' 退出 ', command=window.quit,fg = 'red') b1.place(x=50, y=50) str = StringVar() l = Label(window_sign_up, textvariable=str,fg = 'red').place(x=80, y=10) cw = 1 while cw == 1: t = time.localtime() # 當(dāng)前時間的紀(jì)元值 fmt = "%H %M" times = "%H : %M : %S" now = time.strftime(fmt, t) # 將紀(jì)元值轉(zhuǎn)化為包含時、分的字符串 times = time.strftime(times, t) #顯示的時間 now = now.split(' ') hour = now[0] minute = now[1] str.set(times) if (hour == my_hour and minute == my_minute): str.set("時間到了") play_music() time.sleep(0.95) def start(): timea = var_usr_name.get() my_hourtotal = timea.split(":") # 時間 my_hour = my_hourtotal[0] # 小時 my_minute = my_hourtotal[1] # 分鐘 return my_hour,my_minute def ff1(): try: ff() except: messagebox.showwarning("請注意:是否為中文輸入法的:") def ff(): thread = threading.Thread(target=gg1) thread.daemon = True thread.start()
4)設(shè)置開始、退出按鈕
btn_sign_up = Button(window, text=' 開始 ', command=lambda: ff()) btn_sign_up.place(x=130, y=300) b1 = Button(window, text=' 退出 ', command=window.quit) b1.place(x=250, y=300) b2 = Button(window,text = " ? ",command = problem_mail) b2.place(x=420,y=390) window.mainloop()
5)設(shè)置到點播放音樂
def play_music(): #str.set("時間到了") filepath = r"良人樂團(tuán) - 春節(jié)的鞭炮.mp3"; pygame.mixer.init() # 加載音樂 pygame.mixer.music.load(filepath) pygame.mixer.music.play(start=0.0) # 播放時長,沒有此設(shè)置,音樂不會播放,會一次性加載完 time.sleep(290) pygame.mixer.music.stop()
6)額外設(shè)置的一個彈窗提醒
def problem_mail(): messagebox.showinfo("看文末")
四、效果展示
隨機(jī)展示part1
“帥的人已經(jīng)起來了,丑的人還在睡覺”
?
隨機(jī)展示part2
“就算全世界把你遺忘,鬧鐘都會記得你”
總結(jié)
這不?這個鬧鐘界面又可愛顏值又高,沒有人會拒絕的叭,以后要搶購啥的還可以多設(shè)置幾個鬧鐘
準(zhǔn)時起來搶東西了哈。
到此這篇關(guān)于利用Python編寫一個鬧鐘,治好你的拖延癥的文章就介紹到這了,更多相關(guān)Python鬧鐘內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)嵌套列表的7中方法總結(jié)
這篇文章主要來給大家講解一個Python的進(jìn)階知識點:如何將一個嵌套的大列表展開形成一個列表。小編提供了7種方法供大家學(xué)習(xí)參考,希望大家能喜歡2023-03-03在前女友婚禮上用python把婚禮現(xiàn)場的WIFI名稱改成了
大家好,我是Lex 喜歡欺負(fù)超人那個Lex 擅長領(lǐng)域:python開發(fā),網(wǎng)絡(luò)安全滲透,Windows域控Exchange架構(gòu) 今日重點:python暴力拿下WiFi密碼;python拿下路由器管理頁面 代碼干貨滿滿,建議收藏+實操!有問題及需要,請留言哦2021-08-08Python paramiko 模塊淺談與SSH主要功能模擬解析
這篇文章主要介紹了Python paramiko 模塊詳解與SSH主要功能模擬,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02Python入門教程1. 基本運(yùn)算【四則運(yùn)算、變量、math模塊等】
這篇文章主要介紹了Python教程的基本運(yùn)算,包括四則運(yùn)算、變量的使用與類型檢測、math模塊等,并附帶了相關(guān)說明,代碼備有較為詳盡的說明,便于理解,需要的朋友可以參考下2018-10-10關(guān)于python線程池的四種實現(xiàn)方式
這篇文章主要介紹了關(guān)于python線程池的四種實現(xiàn)方式,一個程序運(yùn)行起來后,一定有一個執(zhí)行代碼的東西,這個東西就是線程,需要的朋友可以參考下2023-04-04