Python 将matplotlib图形画布图像插入QTextDocument

Python 将matplotlib图形画布图像插入QTextDocument,python,matplotlib,pyqt,pyqt5,Python,Matplotlib,Pyqt,Pyqt5,我正在创建一个自动计算成绩和分配成绩字母的应用程序,在该应用程序中,绘图是使用Matplotlib创建的。我想将QTableView和图形包含到QTextDocument中进行打印。我知道如何插入QTableView,但我不知道如何在表格后面插入数字 这是直接实现的还是应该先将图像保存在磁盘中?您必须将画布转换为QImage,然后将其作为资源添加到QTextDocument中 导入系统 导入时间 导入uuid 将numpy作为np导入 从matplotlib.backends.qt_compa

我正在创建一个自动计算成绩和分配成绩字母的应用程序,在该应用程序中,绘图是使用Matplotlib创建的。我想将
QTableView
和图形包含到
QTextDocument
中进行打印。我知道如何插入
QTableView
,但我不知道如何在表格后面插入数字


这是直接实现的还是应该先将图像保存在磁盘中?

您必须将画布转换为QImage,然后将其作为资源添加到QTextDocument中

导入系统 导入时间 导入uuid 将numpy作为np导入 从matplotlib.backends.qt_compat导入QtCore、QtGui、QtWidgets 从matplotlib.backends.backend_qt5agg导入FigureCanvas 从matplotlib.figure导入图形 类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(静态画布) 静态画布设置固定高度(200) self.\u static\u ax=static\u canvas.figure.subplots() t=np.linspace(0,10501) 自静态最大图(t,np.tan(t),“r.”) self.textedit=QtWidgets.QTextEdit() button=QtWidgets.QPushButton(“添加画布”) 按钮。单击。连接(self.add_图像) layout.addWidget(按钮,拉伸=0) layout.addWidget(self.textedit,stretch=1) def添加_图像(自身): document=self.textedit.document() img=self.canvasToQImage(self.\u static\u ax.figure.canvas) url=QtCore.QUrl() url.setScheme(“mydata”) setHost(“image-{uuid}.png.format(uuid=uuid.uuid4())) document.addResource(QtGui.QTextDocument.ImageResource,url,img) #添加图像 cursor=QtGui.QTextCursor(文档) imageFormat=QtGui.QTextImageFormat() imageFormat.setName(url.toString()) 游标.插入图像(图像格式) #或 #self.textedit.append(“”.format(url=url.toString())) @静力学方法 def CANVASTOQ图像(画布): data=canvas.buffer_rgba() ch=4 w、 h=画布。获取宽度和高度() bytesPerLine=ch*w img=QtGui.QImage(数据,w,h,bytesPerLine,QtGui.QImage.Format_ARGB32) 返回img.rgbSwapped() 如果名称=“\uuuuu main\uuuuuuuu”: qapp=qtwidts.QApplication(sys.argv) app=ApplicationWindow() 调整应用程序大小(640480) app.show() qapp.exec()
非常感谢。我刚刚测试了你的方法,但它给了我这个错误
AttributeError:type对象“QUuid”没有属性“Id128”
@Khalillalhooti pyqt5版本似乎没有该模块,无论如何,我只使用uuid创建随机文本,现在将其替换为标准python库的uuid模块。