Python 如何在PyQt中嵌入SchemaDraw
Schemdraw使用matplotlib通过python绘制和显示原理图。 例如,如果运行以下代码,它将在matplot中绘制 现在的问题是如何将这个matplotlib嵌入PyQt5中 谢谢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
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()