mywindow.py from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(70, 60, 121, 41)) font = QtGui.QFont() font.setFamily("Arial") font.setPointSize(12) self.pushButton.setFont(font) self.pushButton.setObjectName("pushButton") self.groupBox = QtWidgets.QGroupBox(self.centralwidget) self.groupBox.setGeometry(QtCore.QRect(70, 130, 800, 600)) self.groupBox.setMinimumSize(QtCore.QSize(800, 600)) self.groupBox.setObjectName("groupBox") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 18)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) 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", "MainWindow")) self.pushButton.setText(_translate("MainWindow", "sin")) self.groupBox.setTitle(_translate("MainWindow", "GroupBox")) test.py import numpy as np from mywindow import Ui_MainWindow import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QGridLayout, QSizePolicy import matplotlib matplotlib.use("Qt5Agg") # 声明使用QT5 from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas import matplotlib.pyplot as plt class MyFigure(FigureCanvas): def __init__(self, width=5, height=4, dpi=100): self.fig = plt.figure(figsize=(width, height), dpi=dpi) super(MyFigure, self).__init__(self.fig) self.axes = self.fig.add_subplot(111) FigureCanvas.setSizePolicy(self, QSizePolicy.Expanding, QSizePolicy.Expanding) FigureCanvas.updateGeometry(self) class myplt(QMainWindow, Ui_MainWindow): def __init__(self): super(myplt, self).__init__() self.setupUi(self) self.pushButton.clicked.connect(self.plt_sin) self.layout = QGridLayout(self.groupBox) # 继承容器groupBox def plt_sin(self): t = np.arange(0.0, 3.0, 0.01) y = np.sin(2 * np.pi * t) self.F = MyFigure(width=3, height=2, dpi=110) font1 = {'family': 'Times New Roman', 'weight': 'normal', 'size': 20, } self.F.axes.plot(t, y) plt.xlabel("t", font1, color='k') plt.ylabel("sin(t)", font1, color='k') self.layout.addWidget(self.F, 0, 0) if __name__ == "__main__": app = QApplication(sys.argv) ui = myplt() ui.show() sys.exit(app.exec_()) 运行test.py ![]() 点击绘制按钮sin ![]() The end 长按二维码 关注塑今是 ![]() ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:塑今是,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |