Графические виджеты
Уроки Открыть IDE
На главную
Виджеты • Урок 14

Объект Timer

Выполнение кода через равные промежутки времени

Что такое Timer?

gui.Timer — это объект, который позволяет вызывать функцию автоматически через равные промежутки времени, без участия пользователя.

Где он применяется:

  • ⏱️ Секундомеры и таймеры обратного отсчёта
  • 🎮 Анимация и движение объектов в игре
  • 📊 Автообновление данных (курсы валют, погода)
  • ⏰ Напоминания и отложенные действия

Простейший пример: таймер каждую секунду выводит случайное число на лейбл:

0
⏰ Каждую секунду число на лейбле меняется. Таймер работает без кнопок.

Свойства таймера

У таймера есть два основных свойства:

  • interval — интервал срабатывания в миллисекундах (1 секунда = 1000 мс)
  • running — запущен ли таймер в данный момент (только для чтения)

Интервал можно менять в любой момент, даже когда таймер уже запущен.

Событие on_tick

Главное событие таймера — on_tick. Функция, присвоенная этому свойству, будет вызываться каждый раз, когда проходит указанный интервал:

Методы таймера

Таймер имеет три метода для управления:

  • start() — запускает таймер (если он ещё не запущен)
  • stop() — останавливает таймер
  • restart() — останавливает и запускает заново (полезно при изменении интервала)

Пример с кнопками запуска и остановки — секундомер:

0
⏱️ Нажмите «Старт» — счётчик начнёт увеличиваться каждую секунду. «Стоп» — остановит.

Однократное срабатывание с задержкой

Таймер можно использовать для выполнения действия один раз через заданную задержку — для этого нужно остановить его после первого срабатывания:

⏰ Нажмите на кнопку — через 3 секунды она исчезнет. Таймер сработает только один раз.

Важное замечание

Timer не является виджетом. Он не отображается на экране и не требует вызова win.add_child(). Его достаточно просто создать и настроить:

Таймер живёт независимо от окон и продолжает работать, даже если все окна закрыты (пока работает программа).