Python 如何在PyQt中嵌入SchemaDraw

Python 如何在PyQt中嵌入SchemaDraw,python,matplotlib,pyqt5,Python,Matplotlib,Pyqt5,Schemdraw使用matplotlib通过python绘制和显示原理图。 例如,如果运行以下代码,它将在matplot中绘制 现在的问题是如何将这个matplotlib嵌入PyQt5中 谢谢 import schemdraw import schemdraw.elements as elm d = schemdraw.Drawing(fontsize=10) d.add(elm.Capacitor()) r=d.add(elm.Resistor(theta=40)) d.add(elm.D

Schemdraw使用matplotlib通过python绘制和显示原理图。 例如,如果运行以下代码,它将在matplot中绘制

现在的问题是如何将这个matplotlib嵌入PyQt5中

谢谢

import schemdraw
import schemdraw.elements as elm

d = schemdraw.Drawing(fontsize=10)
d.add(elm.Capacitor())
r=d.add(elm.Resistor(theta=40))
d.add(elm.Diode(label="D1"))
d.draw()

使用pypi提供的版本,您无法嵌入schemdraw(至少以简单的方式),但查看存储库我发现在下一版本中,draw方法被修改为接受axis,因此您必须从存储库安装schemdraw:

python -m pip install git+https://bitbucket.org/cdelker/schemdraw.git
然后修改官方matplotlib示例,您可以嵌入schemdraw:

导入系统 从matplotlib.backends.qt_compat导入QtCore、QtWidgets 如果QtCore.qVersion()>=“5.”: 从matplotlib.backends.backend_qt5agg导入( 图CAVAS, 导航工具栏2QT作为导航工具栏, ) 其他: 从matplotlib.backends.backend_qt4agg导入( 图CAVAS, 导航工具栏2QT作为导航工具栏, ) 从matplotlib.figure导入图形 导入SchemaDraw 将schemdraw.elements导入为elm 类ApplicationWindow(QtWidgets.QMainWindow): 定义初始化(自): super()。\uuuu init\uuuuu() self.\u main=qtwidts.QWidget() self.setCentralWidget(self.\u main) layout=qtwidts.QVBoxLayout(self.\u main) 画布=图形画布(图(figsize=(5,3))) layout.addWidget(画布) self.addToolBar(导航工具栏(画布,self)) ax=canvas.figure.subplots() d=schemdraw.Drawing(fontsize=10) d、 添加(elm.capactor()) r=d.add(埃尔姆电阻(θ=40)) d、 添加(elm.Diode(label=“D1”)) d、 绘制(ax=ax) 如果名称=“\uuuuu main\uuuuuuuu”: #检查是否已经有正在运行的QApplication(例如,如果正在运行 #从IDE)。 qapp=qtwidts.QApplication.instance() 如果不是qapp: qapp=qtwidts.QApplication(sys.argv) app=ApplicationWindow() app.show() app.activateWindow() app.raise() qapp.exec()