Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Ещё один таймер, теперь уже QtCore.QTimer
В предыдущей статье мы рассматривали создание таймер на основе threading.Timer. В библиотеке PyQt5 есть свой таймер на основе класса QTimer. В предыдущем случае нам пришлось несколько порабоать, чтобы получить именно таймер, который срабатывает через заданный интервал времени. А класс QTimer уже "заточен", чтобы делать именно периодический вызов (периодически срабатывать).
Ниже представлена простая программа, которая выводит в строку редактирования QLineEdit значение даты и времени (см. Рисунок 1). Кнопка Стоп (QPushButton) останаливает действие таймера и превращается в кнопку Старт.
Пояснения к программе
- Таймер создаётся просто запуском 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()) в строку редактирования.
Ну, пока всё!
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.