How to copy an image from matplotlib...FigureCanvas() to use the QTextEdit insertImage() method?

    1 answer 1

    As an option:

     import os import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import * from pyqtgraph import PlotWidget folder = os.getcwd() def btnClick(w): fnameOld = "screen_shot_{}.png".format(str(wi)) if os.path.exists("{}/{}".format(folder, "screen_shot_{}.png".format(str(wi)))): os.remove("screen_shot_{}.png".format(str(wi))) wi += 1 fname = "screen_shot_{}.png".format(str(wi)) pixmap = QPixmap(w.plotWidget.size()) w.plotWidget.render(QPainter(pixmap)) pixmap.save(fname) w.editor.textCursor().insertImage("{}/{}".format(folder, fname)) # <-------- class MainWindow(QWidget): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.resize(400, 650) self.i = 0 self.plotWidget = PlotWidget() self.plotWidget.plot(x=[0.0, 1.0, 2.0, 3.0], y=[4.4, 2.5, 2.1, 2.2]) self.btn = QPushButton("Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² QTextEdit") self.btn.clicked.connect(lambda: btnClick(self)) self.editor = QTextEdit() self.editor.setAcceptRichText(False) self.editor.setAutoFormatting(QTextEdit.AutoAll) font = QFont('Times', 12) self.editor.setFont(font) self.editor.setFontPointSize(12) layout = QGridLayout() layout.addWidget(self.editor, 0, 0) layout.addWidget(self.plotWidget, 1, 0) layout.addWidget(self.btn, 2, 0) layout.setRowMinimumHeight(0, 300) layout.setRowStretch(1, 1) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) app.setApplicationName("Вставка ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² QTextEdit") window = MainWindow() window.show() app.exec_() 

    enter image description here