目录
在用PyQtgraph的时候,经常会使用到定周期操作,类似于多线程,广泛应用在显示,刷新,定周期查询等场景。
Qtimer是在PyQtgraph内部的定时器,所以不可避免的导入Qt库,不要忘记“app = pg.QtGui.QApplication([])”
1.代码如下:
功能是每隔0.1s打印一次“hello”
import pyqtgraph as pg
import time
from time import perf_counter
from pyqtgraph.Qt import QtGui, QtCore, QtWidgets
app = pg.QtGui.QApplication([])
# 创建定时器句柄
timer = QtCore.QTimer()
# 获取当前time
lastTime = 0
# 暂停定时器count
count = 0
# 定时器更新
def update():
global lastTime, count
now = perf_counter()
# 0.1秒执行一次
if((now - lastTime)>0.1):
lastTime = now
# 在下面执行定周期处理流程
print('hello')
count = count + 1
if count > 10:
tm_stop()
print('timer stop')
## else:
## print('~')
def tm_stop():
global timer
timer.stop()
def tm_start():
# 获取当前time
lastTime = perf_counter()
# 连接更新函数
timer.timeout.connect(update)
timer.start(0)
if __name__ == '__main__':
# 开启定周期任务
tm_start()
print('开始定时器任务')
2. 运行结果
3.注意事项:
timer.timeout.connect(update)正确
timer.timeout.connect(update())错误!
update()相当于调用一次update函数,只打印出一次hello,这里应该给timer连接一个函数句柄,所以要用update,没有()。