Вот код, делаю как пример работы с ткинтером. Когда время истекает, начинает играть будильник, как сделать что бы при закрытии окна tkinter (соответственно завершения работы скрипта) этот звук прекращался?
Python:
from tkinter import *
import time
import pyglet
song = pyglet.media.load('C:/Users/Public/Music/bud.mp3')
root = Tk()
root.resizable( width = False, height = False )
root.geometry('300x110')
root.title('TIMER BY VEDO')
root ['bg'] = 'white'
root.iconbitmap ('clock.ico')
text_time = Label(text = 'Через сколько?(в мин, с, ч)', font = 'Consolas 12',
fg = '#3d3d42',
bg = '#ccc')
test = Entry(root, font = 'Consolas 12',relief = 'raised')
enter = Button (text = 'Начать',relief = 'raised', font = 'TimesNewRoman 12')
soundyes = Checkbutton(text = 'Проиграть звук по истечению времени?', font = 'Consolas 9', bg = 'white')
text_time.pack()
test.pack()
soundyes.pack()
enter.pack()
def timerstart (event):
timer = test.get()
print (timer)
check = timer.replace('с',' с').replace('мин', ' мин').replace('ч', ' ч').replace('c', ' с').split()
num = int(check[0])
draft = check[1]
if draft == 'ч':
time2 = num*3600
elif draft == 'мин':
time2 = num*60
elif draft == 'с':
time2 = num
time2 = int(time2)
while time2 > 0:
print ('Осталось '+str(time2)+'с')
time2 -= 1
time.sleep(1)
print ('Время вышло!')
song.play()
input ()
print('Ошибка!')
enter.bind('<Button-1>', timerstart)
root.mainloop()