Задержка времени в pyqt5

Как мне сделать чтобы при нажатию на кнопку через некоторое время выполнялась функция, sleep не подходит.

Так же как у tkinter after(ms, func) или у js setTimeout(ms, func)?


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

Автор решения: S. Nick

QTimer Class

Класс QTimer предоставляет повторяющиеся и одиночные таймеры.

singleShot : bool

Это свойство определяет, является ли таймер однократным Таймер однократного срабатывания срабатывает только один раз, таймеры не однократного срабатывания - каждые миллисекунды. Значением по умолчанию для этого свойства является false.

QtCore.QTimer.singleShot(1000, self.my_func)

Update

У меня почему-то ошибка self.wordButton.clicked.connect(lambda: QTimer.singleShot(2, print(1))) TypeError: arguments did not match any overloaded call: singleShot(int, PYQT_SLOT): argument 2 has unexpected type 'NoneType' singleShot(int, Qt.TimerType, PYQT_SLOT): argument 2 has unexpected type 'NoneType'

    self.wordButton.clicked.connect(self.onWordButton) 

def onWordButton(self):
    QtCore.QTimer.singleShot(1000, lambda: print(1))   
→ Ссылка