Найти тему
programmer's notes (python and more)

Программироание на языке python. Библиотека PyQt5 и таймер на основе класса QTimer

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Ещё один таймер, теперь уже QtCore.QTimer

В предыдущей статье мы рассматривали создание таймер на основе threading.Timer. В библиотеке PyQt5 есть свой таймер на основе класса QTimer. В предыдущем случае нам пришлось несколько порабоать, чтобы получить именно таймер, который срабатывает через заданный интервал времени. А класс QTimer уже "заточен", чтобы делать именно периодический вызов (периодически срабатывать).

Ниже представлена простая программа, которая выводит в строку редактирования QLineEdit значение даты и времени (см. Рисунок 1). Кнопка Стоп (QPushButton) останаливает действие таймера и превращается в кнопку Старт.

Скринщот текста программы. Сам текст программы см. по ссылке ниже
Скринщот текста программы. Сам текст программы см. по ссылке ниже
primer251.py

Пояснения к программе

  • Таймер создаётся просто запуском QTimer(). Теперь мы имеет объект (self.tm).
  • Далее определяем какой метод будет вызываться при срабатывании таймера self.tm.timeout.connect(self.time).
  • Метод QTimer.start(n) запускает работу таймера с указанием периода его срабатывания.
  • QTimer.setTimerType() - задаёт точность срабатывания таймера. Qt.VeryCoarseTimer - самая грубая точность. В общем это и понятно, ведь время мы всё равно получаем из другого источника. Есть ещё Qt.PreciseTimer - высокая точность, Qt.CoarseTimer - средняя точность (по умолчанию).
  • Метод cli() - останавливает или запускает таймер. QTimer.isActive() - определяет работает таймер или нет.
  • self.time - получает текущее время и дату (метод datetime.datetime.today()
    ) и выводит (см. также метод
    strftime()) в строку редактирования.
Рисунок 1. Каждую секунду текущие дата и время
Рисунок 1. Каждую секунду текущие дата и время

Ну, пока всё!

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Ваше время истекло
Ваше время истекло