I'm trying to embed my pyqtgraph animation inside a GUI application made with Qt Designer.
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
win = pg.GraphicsWindow()
win.setWindowTitle('pyqtgraph example: Scrolling Plots')
# 1) Simplest approach -- update data in the array such that plot appears to scroll
# In these examples, the array size is fixed.
p1 = win.addPlot()
#data1 = np.random.normal(size=300)
#y = np.cos(2*np.pi*10*t)
y = np.random.normal(size=300)
curve1 = p1.plot(y)
ptr1 = 0
def update1():
global y, curve1, ptr1
y[:-1] = y[1:] # shift data in the array one sample left
# (see also: np.roll)
y[-1] = np.random.normal() # continua grafiacando a partir del ultimo punto graficado
curve1.setData(y)
ptr1 += 1
#update plot
def update():
update1()
timer = pg.QtCore.QTimer()
timer.timeout.connect(update)
timer.start(40)
## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'trainingEcg.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(700, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(280, 40, 31, 31))
self.label_2.setObjectName("label_2")
self.BotonSimular = QtWidgets.QPushButton(self.centralwidget)
self.BotonSimular.setGeometry(QtCore.QRect(360, 30, 131, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.BotonSimular.setFont(font)
self.BotonSimular.setStyleSheet("background-color: rgb(85, 255, 0);")
self.BotonSimular.setObjectName("BotonSimular")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(190, 100, 321, 41))
self.label_3.setObjectName("label_3")
self.BotonReset = QtWidgets.QPushButton(self.centralwidget)
self.BotonReset.setGeometry(QtCore.QRect(530, 30, 131, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.BotonReset.setFont(font)
self.BotonReset.setStyleSheet("background-color: rgb(255, 0, 0);")
self.BotonReset.setObjectName("BotonReset")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(20, 30, 141, 41))
self.label.setObjectName("label")
self.InBMP = QtWidgets.QLineEdit(self.centralwidget)
self.InBMP.setGeometry(QtCore.QRect(180, 40, 71, 31))
self.InBMP.setStyleSheet("background-color: rgb(255, 255, 255);")
self.InBMP.setObjectName("InBMP")
self.Plot = PlotWidget(self.centralwidget)
self.Plot.setGeometry(QtCore.QRect(40, 200, 611, 281))
self.Plot.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.Plot.setFrameShadow(QtWidgets.QFrame.Raised)
self.Plot.setObjectName("Plot")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "ecgTrain"))
self.label_2.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:10pt; font-weight:600;\">BMP</span></p></body></html>"))
self.BotonSimular.setText(_translate("MainWindow", "SIMULAR"))
self.label_3.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:12pt; font-weight:600;\">ELECTROCARDIOGRAMA</span></p></body></html>"))
self.BotonReset.setText(_translate("MainWindow", "RESET"))
self.label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:10pt; font-weight:600;\">Frecuencia Cardiaca</span></p></body></html>"))
from pyqtgraph import PlotWidget
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())