无法在pyqt5中嵌入的matplotlib上打印线
以下是代码。它通过按下按钮绘制一条线。然而,当我按下按钮,它只是打印 位于0x11371fcc0处的matplotlib.lines.Line2D对象 但无法在画布上显示线条。你怎么修理它无法在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
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()