Я пытаюсь создать динамический c пользовательский интерфейс, который отображает графики в режиме реального времени, используя matplotlib, который ранее был пользовательским c пользовательским интерфейсом. Я разработал пользовательский интерфейс в QT Designer, используя Python. Код для макета окна таков:
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
#Load the UI Page
uic.loadUi('PredSoftV2.ui', self)
self.loadData()
pg.setConfigOption('background', 'w')
self.setWindowTitle("ABC window")
m = PlotCanvas(self, width=5, height=4)
m.move(595,200)
m2 = PlotCanvas2(self, width=5, height=4)
m2.move(595,610)
m3 = PlotCanvas3(self, width=5, height=2)
m3.move(15,750)
m4 = PlotCanvas4(self, width=5, height=2)
m4.move(15,500)
Сгенерированное окно выглядит следующим образом:
Теперь на том же окно, я пытаюсь изменить графики, чтобы сделать его динамическим c. Код, который я использовал для этого окна:
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
#Load the UI Page
uic.loadUi('PredSoftV2.ui', self)
self.loadData()
pg.setConfigOption('background', 'w')
#pg.setConfigOption('foreground', 'k')
#self.btn_load.clicked.connect(self.reset_func)
self.setWindowTitle("Predictive Maintenance(CoEAMT)")
#l = QtWidgets.QVBoxLayout(self.main_widget)
self.main_widget = QtWidgets.QWidget(self)
l = QtWidgets.QGridLayout(self.main_widget)
dc = MyDynamicMplCanvas(self.main_widget, width=2, height=2, dpi=100)
l.addWidget(dc, 1, 0)
sc2 = MyDynamicMplCanvas2(self.main_widget, width=2, height=2, dpi=100)
l.addWidget(sc2, 2, 0)
sc4 = MyDynamicMplCanvas5(self.main_widget, width=2, height=2, dpi=100)
l.addWidget(sc4, 3, 0)
sc3 = MyDynamicMplCanvas3(self.main_widget, width=4, height=4, dpi=100)
l.addWidget(sc3, 3, 3)
sc4 = MyDynamicMplCanvas4(self.main_widget, width=4, height=4, dpi=100)
l.addWidget(sc4, 2, 3)
self.main_widget.setFocus()
self.setCentralWidget(self.main_widget)
self.show()
self.cb.addItem("Asset 1")
self.cb.addItem("Asset 2")
self.cb.addItem("Asset 3")
Верх интерфейса выглядит так:
Любой причина того, почему это происходит и как это исправить, будет оценена.