PyQt5图形用户界面中的实时绘图

2024-06-02 08:13:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的PyQt5 Gui中绘制一些实时传感器数据。数据正在写入数据帧中。目前,我通过启动一个定时器来完成这项工作,当按下按钮时,定时器会调用更新功能。全局参数只是一个变量,当按下停止按钮时会发生变化,从而停止画布更新。因为它相当慢,我想尝试它与动画。可以在我的FigureCanvas类中实现吗?我怎么做呢

class Canvas1(FigureCanvas):
   
    def __init__(self, interval:int):
        
        super().__init__(mpl.figure.Figure(tight_layout=True))
        self.ax = self.figure.subplots()
        
        Canvas1.timer = QtCore.QTimer()
        Canvas1.timer.timeout.connect(self.update_canvas)
        Canvas1.timer.setInterval(interval)
        return
    
    def update_canvas(self):
        
        global argument 
        if argument == True:
            global dataframe            
            x=dataframe.Index.tail(200) 
            y1 = dataframe.Pressure.tail(200)
            self.ax.clear()     
            self.ax.set_xlabel('Datapoint')
            self.ax.set_ylabel('Pressure [Pa]')
            self.ax.plot(x, y1)                  
            self.draw()
            return