Вот код,
Хочу что бы oscar = Label(text = 'Осталось '+str(time2)+'с', font = 'Consolas 15', bg = 'black', fg = 'white'), заменяло значение лейбла которое задано изначально. Но во первых ничего не изменяется, а во вторых во время цикла while само окно зависает. По возможности хочу убрать все остальное, кроме остатка из диалогового окна. Заранее спасибо.
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('320x150')
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', onvalue=False, offvalue=True)
oscar = Label(text = 'Осталось 0с', font = 'Consolas 15', bg = 'white', fg = 'white')
text_time.pack()
test.pack()
soundyes.pack()
enter.pack()
oscar.pack()
def timerstart (event):
try:
timer = test.get()
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)+'с')
oscar = Label(text = 'Осталось '+str(time2)+'с', font = 'Consolas 15', bg = 'black', fg = 'white')
time2 -= 1
time.sleep(1)
print ('Время вышло!')
song.play()
except:
print('Ошибка!')
enter.bind('<Button-1>', timerstart)
root.mainloop()