Как добавить функцию сброса (reset) в программу, чтобы при нажатии кнопки btn2 программа останавливалась и сбрасывалась таймер на ноль?
Для перезапуска программы в Tkinter при нажатии на кнопку можно использовать метод `destroy()` для закрытия текущего окна и создание нового экземпляра нашего приложения.
Вот пример кода, который позволяет перезапустить программу при нажатии на кнопку "Restart" (btn2):
```python
import tkinter as tk
def restart_program():
root.destroy()
# Здесь вы можете добавить любой код для сброса значений или состояния программы
# Например, обнуление таймера или других переменных
# Создаем новый экземпляр приложения
root = tk.Tk()
# Добавляем элементы, устанавливаем обработчик событий, и т.д.
# ...
root.mainloop()
# Создаем экземпляр класса Tk
root = tk.Tk()
# Создаем кнопку "Restart"
btn2 = tk.Button(root, text="Restart", command=restart_program)
btn2.pack()
# Запускаем главный цикл обработки событий
root.mainloop()
```
Если вы хотите сбросить таймер на ноль при нажатии кнопки, вы можете добавить соответствующий код в функцию `restart_program()`. Например:
```python
def restart_program():
root.destroy()
# Сброс значения таймера на ноль
timer_value.set(0)
# Создаем новый экземпляр приложения и т.д.
# ...
```
Здесь `timer_value` - это переменная, которая хранит текущее значение таймера, например, связанную с ней переменную `StringVar()`.
import time
from tkinter import *
def main_window():
window= Tk()
window.title('Будильник')
window.geometry('400x400')
lbl = Label(window, text='Вы долго смотрели в монитор,\n теперь посмотрите в окно.', font=('Arial Bold', 14))
lbl.grid(column=0, row=0)
btn1 = Button(window, text='НАЖМИ', command=clicked1)
btn2 = Button(window, text='НАЖМИ2', command=clicked2)
btn1.grid(column=0, row=1)
btn2.grid(column=1, row=1)
window.mainloop()
def clicked1():
time.sleep(10)
window.destroy()
main_window()
def clicked2():
quit()
if __name__ == '__main__':
main_window()
Здесь есть функция main_window(), которая создает главное окно программы с кнопками и текстом. Функции clicked1() и clicked2() отвечают за действия при нажатии на кнопки. Если нажата кнопка "НАЖМИ", то окно будет уничтожено через 10 секунд и затем снова создано. Если нажата кнопка "НАЖМИ2", то программа завершит свою работу.