文章目录
前言
循环的实现
图形数据的更新
曲线图的更新
柱形图的更新
二维图的更新
三维图的更新
前言
上一篇介绍了如何在PyQt的界面上通过Matplotlib绘制静态的曲线图、柱形图、二维图和三维图。这一篇介绍一下如何通过数据更新实现这些图形的动态显示。
循环的实现
要实现图形或数据的动态更新,必然需要一个时间循环,在PyQt中一般通过QTimer来实现循环控制。QTimer的使用方式如下所示。
def __init__(self,parent=None):
super(ImgDisp,self).__init__(parent)
self.setupUi(self)
self.Init_Widgets()
self.timer=QTimer()
self.timer.start(1)
self.ts=time.time()
self.timer.timeout.connect(self.UpdateImgs)
我们在上一篇创建的ImgDisp类的初始函数中添加QTimer计时器。QTimer计时器的使用方法分成三步:
1、创建一个计时器:
self.timer=QTimer()
2、启动计时器,括号里的数字代表循环的周期,单位为毫秒:
self.timer.start(1)
需要注意的是,如果待循环的函数体如果在设置的周期内没有完成,那么计时器会等待循环函数体执行完后再开始下一个循环。
3、设置循环函数体:
self.timer.timeout