Нужно остановить программу по нажатию клавиши
Мне нужно сделать так, чтобы мой таймер перестал идти по нажатию конкретной клавиши.
код:
if a == cnty:
print("Отсчёт пошёл. Чтобы остановить его, нажмите Enter")
while a == cnty:
sec = 0
while sec == sec:
if keyboard.is_pressed('enter'):
break
sec += 1
time.sleep(1)
print(sec)
После нажатия клавиши таймер почему-то всё ещё продолжает идти. Как правильно нужно написать такую программу?
Ответы (1 шт):
Автор решения: denisnumb
→ Ссылка
Счетчик остановится, если нажать Enter именно в момент проверки нажатия. Если не успеть нажать клавишу в момент проверки, то дальше идет секундная задержка и никакое условие не проверяется.
Так что проверку нажатия клавиши нужно реализовывать через обработчик события нажатия на кнопку. Зарегистрировать обработчик можно через функцию add_hotkey из библиотеки keyboard:
import keyboard
import time
run_timer = True
def stop_timer():
global run_timer
run_timer = False
keyboard.add_hotkey('enter', callback=stop_timer)
print("Отсчёт пошёл. Чтобы остановить его, нажмите Enter")
sec = 0
while run_timer:
time.sleep(1)
sec += 1
print(sec)