【发布时间】:2019-11-15 13:09:29
【问题描述】:
from tkinter import *
from tkinter import messagebox
import pygame
import time
pygame.init()
def alarm_time():
hrs = int(hrs_opt_ctrl.get())
min = int(min_opt_ctrl.get())
tme = tme_ctrl.get()
if hrs == int(time.strftime('%I')) and min == int(time.strftime('%M')) and tme == time.strftime('%p'):
# Time is up. Play the sound
alarm_ringtone = pygame.mixer.music.load('alarm_noise.mp3')
pygame.mixer.music.play()
# Don't call after again
else:
# Not time, sleep for 1 second
window.after(1000, alarm_time)
def snooze_time():
snoz_min=(2,5,10,20,30,35,40,45,50,55,59)
snooze=True
while snooze:
try:
min = min + int(snoz_min[minute])
window.after((min)*1000,alarm_time)
except:
messagebox.showerror("Error 404", "Cannot Snooze for given Time")
if minute<=len(snoz_min):
minute+=1
elif minute!=len(snoz_min):
minute=0
else:
pass
snooze=False
window=Tk()
window.title('Alarm')
window.config(background='black')
logo=PhotoImage(file='alarm.gif')
lab_1=Label(window,text='Alarm',bg='black',fg='white',font=('Times',25,'bold')).grid(column=100,row=0)
lab_2=Label(window,bg='black',image=logo).grid(column=300,row=0)
lab_3=Label(window,text='Hours',bg='black',fg='white',font=('Comic',10,'bold')).grid(column=50,row=130)
lab_4=Label(window,text='Minutes',bg='black',fg='white',font=('Comic',10,'bold')).grid(column=85,row=130)
opt_hrs=[]
opt_min=[]
opt_tme=('AM','PM')
minute=0
for i in range(1,13):
opt_hrs.append(i)
for j in range(0,60):
opt_min.append(j)
hrs_opt_ctrl=StringVar()
min_opt_ctrl=StringVar()
tme_ctrl=StringVar()
tme_ctrl.set(opt_tme[0])
hrs_lab=OptionMenu(window,hrs_opt_ctrl,*opt_hrs).grid(column=60,row=130,columnspan=15)
min_lab=OptionMenu(window,min_opt_ctrl,*opt_min).grid(column=86,row=130,columnspan=15)
tme_lab=OptionMenu(window,tme_ctrl,*opt_tme).grid(column=150,row=130)
but_1=Button(window,text='Set Alarm',font=('Comic',10,'bold'),command=alarm_time).grid(column=100,row=240)
but_2=Button(window,text='Snooze',font=('Comic',10,'bold'),command=snooze_time).grid(column=100,row=250)
window.mainloop()
以下代码在运行时不显示任何错误但不播放警报。 警报文件的扩展名为 .mp3,与项目位于同一文件夹中。 我可能认为时间模块代码有问题 或“设置警报”按钮未接受任何输入。列和行的位置不准确
【问题讨论】:
-
看起来您需要在设置闹钟时按下按钮。你这样做吗? How to create a timer using tkinter?
-
是的,我正在按下按钮,但没有任何响应
-
你做了什么来调试这个?您是否验证了
hrs、min和tme是您认为的那样?另外,你为什么希望它播放?看起来您已将其设计为仅在您在正确的时间单击按钮时才播放。 -
哦不知道。有没有办法纠正这个问题?
-
@4shwin_26 抱歉我删除了
\。应该阅读:在if ...条件之前添加print('{}=={} and {}=={} and {}=={}'.format(hrs, time.strftime('%I'), min, time.strftime('%M'), tme, time.strftime('%p')))。
标签: python python-3.x tkinter pygame