導語
相信有不少人的鬧鐘是設成這樣的:
6:20
6:30
6:35
6:37
……
起床真是令人困擾的事情,有的人根本不用定鬧鐘,但有的人提前半個小時鬧鐘都叫不醒,你的鬧
鐘怎麼定的?
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-YWan5SO5ADNyUWNlFGMwYWOjZGMyYzX0QTMzADM5EzLcJDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
舉個粒子:
現在這天氣真的就很需要鬧鐘,每天8點不然真的醒不來
兩個鬧鐘都喊不起,最少需要三個鬧鐘。需要,而且每5分鐘一個。
我是起床困難戶{需要5-6個鬧鐘},但我能克服熬夜早點睡的時候,第二天隻需要二、三個鬧鐘就能起來了。
我的鬧鐘都是每天晚上親自檢查好然後設定的,因為擔心漏掉了,怕早上遲到。
需要三個鬧鐘,2個隔比較近,1個隔10分鐘響,讓自己覺得賴床已經好久,更開心的起床......
哈哈哈——今天的話就教教大家來制作一款小鬧鐘小程式~卡卡通通的外表才适合我嘛!
正文
這款可愛的小鬧鐘是基于Tkinter做的界面哈——有界面更好看滴!
做的界面也是卡通的動漫的形象啦,當然也是可以随意修改很多界面背景、參數的哈。
一、小科普
1)time 子產品
在Python中包含了若幹個能夠處理時間的庫,而time庫是最基本的一個,是Python中處理時間的
标準庫。time庫能夠表達計算機時間,提供擷取系統時間并格式化輸出的方法,提供系統級精确計
時功能(可以用于程式性能分析)。
time庫包含三類函數,以下介紹常用的函數:
- 時間擷取:time()、ctime()、gmtime()
- 時間格式化:strftime()、strptime()
- 程式計時:sleep()、perf_counter()
2)messagebox子產品
messagebox可用在消息提示框、警告框、詢問框、錯誤、關于等會話框,messagebox可以很友善
實作相關對話框的彈出。
二、準備中
1)環境安裝
該項目運作環境:Python3、Pycharm、Pygame、Tkinter、time子產品等一些自帶的不一一介紹了哈。庫的安裝統一使用:
pip install +子產品名 或帶豆瓣鏡像源 pip install -i https://pypi.douban.com/simple/ +子產品名
2)素材(音樂+背景可修改)
三、開始敲代碼
1)導入子產品
from os import environ
environ['PYGAME_HIDE_SUPPORT_PROMPT'] = '1'
import pygame
import time # 導入此子產品,擷取目前時間
from tkinter import *
from tkinter import messagebox #彈窗
import threading
2)界面設定
标題,界面的大小寬度,文字等等都設定好了哈。
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 = "帥的人已經醒了,醜的人還在睡覺",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)擷取目前實時時間
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='目前時間為: ').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() # 目前時間的紀元值
fmt = "%H %M"
times = "%H : %M : %S"
now = time.strftime(fmt, t) # 将紀元值轉化為包含時、分的字元串
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)設定開始、退出按鈕
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)設定到點播放音樂
def play_music():
#str.set("時間到了")
filepath = r"良人樂團 - 春節的鞭炮.mp3";
pygame.mixer.init()
# 加載音樂
pygame.mixer.music.load(filepath)
pygame.mixer.music.play(start=0.0)
# 播放時長,沒有此設定,音樂不會播放,會一次性加載完
time.sleep(290)
pygame.mixer.music.stop()
6)額外設定的一個彈窗提醒
def problem_mail():
messagebox.showinfo("看文末")
7)效果展示
7.1 随機展示part1
“帥的人已經起來了,醜的人還在睡覺”
7.2 随機展示part2
“就算全世界把你遺忘,鬧鐘都會記得你”
總結
這不?這個鬧鐘界面又可愛顔值又高,沒有人會拒絕的叭,以後要搶購啥的還可以多設定幾個鬧鐘
準時起來搶東西了哈。
下面這款鬧鐘是真的一秒醒哈哈哈!