Как добавить функцию сброса (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", то программа завершит свою работу.