У меня есть некоторые проблемы. Я плохо понимаю язык 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())