python:有界面的闹钟小程序

这个程序使用Python的Tkinter库创建了一个界面,结合datetime模块获取当前时间,并利用playsound库播放音频作为闹钟。用户可以设置小时、分钟、秒和上下午,当设置的时间与当前时间匹配时,程序将弹出通知并播放音频。
摘要由CSDN通过智能技术生成

  本程序使用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()指定音频。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csaclw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值