我有一个使用matplotlib创建绘图的代码:
绘图.py
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class Canvas(FigureCanvas):
def __init__(self, parent = None, width=5, height=10, dpi=100):
fig = Figure(figsize=(width, height), dpi=dpi)
FigureCanvas.__init__(self, fig)
def plot(self):
print("im plotting")
current_data = [46.67, 50.0, 47.06, 50.0]
ax = self.figure.add_subplot(111)
ax.scatter(current_data, current_data)
print(current_data)
这个Canvas类在另一个文件中使用:
guiwrapper.py
from PyQt5 import QtCore, QtGui, QtWidgets, uic
import driver
from plot import Canvas
baseUIClass, baseUIWidget = uic.loadUiType("mygui.ui")
class Logic(baseUIWidget, baseUIClass):
def __init__(self, parent=None):
super(Logic, self).__init__(parent)
self.setupUi(self)
canvas = Canvas(self, width=8, height=4)
self.plot_location.addWidget(canvas)
canvas.plot()
#self.run_simulation.clicked.connect(canvas.plot)
#self.run_simulation.clicked.connect(lambda: canvas.plot())
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ui = Logic(None)
ui.show()
sys.exit(app.exec_())
我不明白为什么单击run_simulation
按钮时无法绘制图形。如果我简单地编写canvas.plot(),GUI打开时图形就在那里,但是连接按钮来调用该函数不起作用,图形不会被打印出来,也不会出现
有人知道这是怎么回事吗
试试看:
相关问题 更多 >
编程相关推荐