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

QtCore.QTimer.singleShot()创建异步定时器

发布时间:2023-12-23 17:38:50

在Qt中,可以使用QtCore.QTimer.singleShot()函数创建一个异步定时器。该函数在指定的时间间隔之后,执行相应的槽函数,并且只会执行一次。

下面是一个使用QtCore.QTimer.singleShot()的例子:

from PyQt5.QtCore import QTimer, QCoreApplication

def timer_callback():
    print("Timer elapsed")

if __name__ == '__main__':
    app = QCoreApplication([])

    # 创建一个1秒后执行的定时器,并指定回调函数
    QTimer.singleShot(1000, timer_callback)

    # 运行事件循环
    app.exec_()

在上面的例子中,我们导入了QTimer和QCoreApplication类,并定义了一个回调函数timer_callback()。在主程序中,我们创建了一个QCoreApplication实例来启动事件循环。

然后,我们使用QTimer.singleShot()函数创建一个1秒后执行的定时器,并将timer_callback()函数作为回调函数传递给它。这意味着当定时器到期时,将调用timer_callback()函数。

最后,我们调用app.exec_()来运行事件循环,这样定时器就可以正常工作。

当定时器到达指定的时间间隔后,会自动调用回调函数timer_callback(),并打印出"Timer elapsed"。由于我们在这个例子中只创建了一个定时器,所以它只会执行一次。

利用QtCore.QTimer.singleShot()函数,我们可以方便地创建异步定时器,用于执行一次性的任务,或者在指定的时间后触发某个操作。