无法在pyqt5中嵌入的matplotlib上打印线

无法在pyqt5中嵌入的matplotlib上打印线,matplotlib,pyqt5,Matplotlib,Pyqt5,以下是代码。它通过按下按钮绘制一条线。然而,当我按下按钮,它只是打印 位于0x11371fcc0处的matplotlib.lines.Line2D对象 但无法在画布上显示线条。你怎么修理它 import matplotlib matplotlib.use("Qt5Agg") from PyQt5 import QtCore from PyQt5.QtWidgets import * from matplotlib.backends.backend_qt5agg import FigureCan

以下是代码。它通过按下按钮绘制一条线。然而,当我按下按钮,它只是打印

位于0x11371fcc0处的matplotlib.lines.Line2D对象

但无法在画布上显示线条。你怎么修理它

import matplotlib
matplotlib.use("Qt5Agg")
from PyQt5 import QtCore
from PyQt5.QtWidgets import *

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure

import mywidgets
# mywidgets.MplCanvas is a wrapper of FigureCanvas in order to make the drawing convenient.

class ApplicationWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.setWindowTitle("Hello")

        self.main_widget = QWidget(self)

        l = QVBoxLayout(self.main_widget)
        fig1 = Figure(figsize=(5, 4))
        self.sc = mywidgets.MplCanvas(self.main_widget, fig1)
        l.addWidget(self.sc)
        bdraw = QPushButton('Draw')
        bdraw.pressed.connect(self.draw)
        l.addWidget(bdraw)

        self.main_widget.setFocus()
        self.setCentralWidget(self.main_widget)

    def draw(self):
        # it does not report any error, but on lines are drawn.
        line = self.sc.axes.plot([1,2,3], 'r')
        print(line)


if __name__ == '__main__':
    app = QApplication([])

    aw = ApplicationWindow()
    aw.show()
    #sys.exit(qApp.exec_())
    app.exec_()

打印到画布后忘记更新画布

def draw(self):
    line = self.sc.axes.plot([1,2,3], 'r')
    self.sc.draw_idle()

您没有提供
mywidget
的内容,因此我们无法运行您的代码。请提供一个在任何情况下,我猜您都需要在绘图指令后添加一个
draw()
draw\u idle()