本程序使用tkinter库进行界面设计,datetime获取当前时间,playsound库播放定时闹钟音频。
代码如下:
from datetime import datetime
from tkinter import *
from tkinter import ttk, messagebox
from playsound import playsound
#设置闹钟按钮功能
def alarm():
#获取设置的起床时间
alarm_h = h.get()
alarm_m = m.get()
alarm_s = s.get()
alarm_p = p.get()
if alarm_h == '时':
messagebox.showerror('windows', '请设置全起床时间!')
else:
messagebox.showinfo('windows', '设置成功!')
while True:
#获取当前时间并通过while循环刷新。
now = datetime.now()
current_h = now.strftime("%I")
current_m = now.strftime("%M")
current_s = now.strftime("%S")
current_p = now.strftime("%p")
#判断
if alarm_p == current_p:
if alarm_h == current_h:
if alarm_m == current_m:
if alarm_s == current_s:
messagebox.showinfo('起床了', '闹钟播放')
# 闹钟铃声
playsound('赵雷 - 飞鸟和鱼 (Live).mp3')
# os.system('赵雷 - 飞鸟和鱼 (Live).mp3')
break
#设置下拉框值
h_values = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
m_values = []
s_values = []
p_values = ['AM', 'PM']
for i in range(0, 60):
if i < 10:
i = '0' + str(i)
m_values.append(i)
s_values.append(i)
# 界面设计
root = Tk()
root.geometry('400x200+500+400')
root.title('闹钟')
title = Label(root, text='闹钟', font=('楷体', 20), bg='lightblue')
title.place(x=166, y=20)
label = Label(root, text='示例: 09:50:00 am', bg='ivory')
label.place(x=146, y=76)
label1 = Label(root, text=' 起床时间:')
label1.place(x=36, y=120, width=60, height=20)
# 时、分、秒下拉框默认值。
var = StringVar()
var.set('时')
h = ttk.Combobox(root, state='readonly', textvariable=var, values=h_values)
h.place(x=96, y=118, width=60)
var1 = StringVar()
var1.set('分')
m = ttk.Combobox(root, state='readonly', textvariable=var1, values=m_values)
m.place(x=166, y=118, width=60)
var2 = StringVar()
var2.set('秒')
s = ttk.Combobox(root, state='readonly', textvariable=var2, values=s_values)
s.place(x=236, y=118, width=60)
var3 = StringVar()
var3.set('上下午')
p = ttk.Combobox(root, state='readonly', textvariable=var3, values=p_values)
p.place(x=306, y=118, width=60)
label2 = Label(root, text=':')
label2.place(x=156, y=118)
label3 = Label(root, text=':')
label3.place(x=226, y=118)
button = Button(root, text='设置', command=alarm)
button.place(x=164, y=160, width=60)
if __name__ == '__main__':
root.mainloop()
运行结果:
确认后播放使用playsound()指定音频。