Как добавить Matplotlib в PyQT5 с помощью QT Designer - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть некоторые проблемы. Я плохо понимаю язык PyQt, и, к сожалению, я не нашел хороших инструкций. Итак, у меня есть модель от Qt Designer с Qwidget "centalWidget", и я хочу добавить в нее графику matplotlib.

поэтому файл qt designer:

введите описание ссылки здесь

мой код файла py:

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5 import QtCore, QtGui, QtWidgets
from myform import *  # импорт нашего сгенерированного файла
import sys


class mywindow(QtWidgets.QMainWindow):
  def __init__(self, parent = None):
    super(mywindow, self).__init__()
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)
    self.setWindowTitle("main window")
    self.ui.pushButton.clicked.connect(self.save_f)
  def save_f(self):
    val = self.ui.lineEdit.text()
    print(str(val))
    self.ui.textEdit.setText(str('рарара'))

if __name__=="__main__":
    app = QtWidgets.QApplication(sys.argv)
    application = mywindow()
    application.show()
    sys.exit(app.exec())

И мои попытки

import sys
import time

import numpy as np

from matplotlib.backends.qt_compat import QtCore, QtWidgets, is_pyqt5
if is_pyqt5():
    from matplotlib.backends.backend_qt5agg import (
    FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
else:
    from matplotlib.backends.backend_qt4agg import (
    FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
from matplotlib.figure import Figure


class mywindow(QtWidgets.QMainWindow):
    def __init__(self, parent = None):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setWindowTitle("main window")
        self.ui.pushButton.clicked.connect(self.save_f)


        layout = QtWidgets.QVBoxLayout(self.ui.centralwidget)

        static_canvas = FigureCanvas(Figure(figsize=(5, 3)))
        layout.addWidget(static_canvas)
        self.addToolBar(NavigationToolbar(static_canvas, self))

        self._static_ax = static_canvas.figure.subplots()
        t = np.linspace(0, 10, 501)
        self._static_ax.plot(t, np.tan(t), ".")

    def _update_canvas(self):
        self._dynamic_ax.clear()
        t = np.linspace(0, 10, 101)
        # Shift the sinusoid as a function of time.
        self._dynamic_ax.plot(t, np.sin(t + time.time()))
        self._dynamic_ax.figure.canvas.draw()

    def save_f(self):
        val = self.ui.lineEdit.text()
        print(str(val))
        self.ui.textEdit.setText(str('рарара'))

if __name__=="__main__":
    app = QtWidgets.QApplication(sys.argv)
    application = mywindow()
    application.show()
    sys.exit(app.exec())
...