Пример работы с QTimer

Не могу понять как работают таймеры QTimer в PyQt5.

Допустим, надо после нажатия определенной кнопки чтобы таймер запускался и двигался элемент каждые n секунд на определённое расстояние.

Можете объяснить, или показать пример как это сделать?


Ответы (1 шт):

Автор решения: Alexander Chernin

В качестве dummy-примера:

class Widget(QWidget):
    def __init__(self, parent=None):    
        QWidget.__init__(self, parent)

        self.button = QPushButton("Старт/Стоп", this)
        self.timer = QTimer()
        # Задаем интервал срабатывания таймера 1 сек (1000мсек)
        self.timer.setInterval(1000) #

        # Сигнал timeout будет "выбрасываться" через каждый QTimer.interval() времени (сейчас 1сек)
        self.timer.timeout.connect(self.__moveElement)

        # Кнопка запуска/остановки таймера
        self.button.clicked.connect(lambda : self.timer.start() if not self.timer.isActive() else self.timer.stop())

    # Слот обработки сигнала от таймера, запускаемый каждые QTimer.interval() времени
    def __moveElement(self):
        # Двигаем наши элементы
        # В конце, не забываем обновить форму , или сцену и т.д.

→ Ссылка