欢迎访问宙启技术站
智能推送

使用PyQt5.QtCore.QTimer.singleShot()实现循环定时器

发布时间:2023-12-23 17:39:32

PyQt5是一个Python GUI框架,它包含了许多用于创建交互式应用程序的工具和库。PyQt5.QtCore.QTimer类是其中一个非常有用的类,它可以用来创建简单的定时器,用于实现一些定时任务或循环任务。

在PyQt5中,可以使用QTimer.singleShot()方法来创建一个单次触发的定时器。它接受两个参数:延迟时间和槽函数。延迟时间是指定的时间(以毫秒为单位),在这段时间后槽函数将被调用。

下面是一个使用QTimer.singleShot()方法创建循环定时器的示例:

import sys
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import QApplication

def myFunc():
    print("定时器触发")

def loopTimer():
    print("循环定时器触发")
    QTimer.singleShot(1000, loopTimer)  # 每次触发后重新设置定时器

if __name__ == "__main__":
    app = QApplication(sys.argv)
    QTimer.singleShot(1000, myFunc)  # 1秒后触发myFunc函数
    QTimer.singleShot(2000, app.quit)  # 2秒后触发退出应用程序
    QTimer.singleShot(3000, loopTimer)  # 3秒后触发loopTimer函数

    sys.exit(app.exec_())

在上面的例子中,我们创建了三个单次触发的定时器。 个定时器在1秒后触发myFunc函数,这里只是简单地打印一条消息。第二个定时器在2秒后触发app.quit函数,用于退出应用程序。第三个定时器在3秒后触发loopTimer函数,该函数中又重新设置了定时器,实现了一个循环定时器。

在应用程序中使用定时器可以方便地执行定时任务,例如在定时器触发时更新UI界面、执行网络请求、读取传感器数据等。使用QTimer.singleShot()方法可以简单快捷地创建定时器,非常适用于一些简单的定时任务。