基本上按照本教程,我使用Qt Designer构建了Matplotlib GUI 。我正在使用python 3.5.2和pyqt 5.6.0。您可以在下面看到的代码正常工作。但是,更改绘图时,至少根据Windows 10 Task Manager,我的系统使用的内存增加了。为了更好地重新创建它,可以增加plot命令中使用的随机值的数量。似乎rmmppl函数中的self.canvas.close()命令不足以实际释放所使用的内存。
如何防止内存使用量增加?
编辑:这是GUI 的屏幕截图
from PyQt5 import QtCore, QtGui, QtWidgets
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt5agg import (
FigureCanvasQTAgg as FigureCanvas,
NavigationToolbar2QT as NavigationToolbar)
import window
import numpy as np
class Plotter(QtWidgets.QMainWindow, window.Ui_MainWindow):
def __init__(self):
super(Plotter, self).__init__()
self.setupUi(self)
self.fig_dict = {}
self.mplfigs.itemClicked.connect(self.changefig)
def addmpl(self, fig):
self.canvas = FigureCanvas(fig)
self.mplvl.addWidget(self.canvas)
self.canvas.draw()
self.toolbar = NavigationToolbar(self.canvas,self.mplwindow, coordinates = True)
self.mplvl.addWidget(self.toolbar)
def rmmppl(self):
self.mplvl.removeWidget(self.canvas)
self.canvas.close()
self.mplvl.removeWidget(self.toolbar)
self.toolbar.close()
def addfig(self, name, fig):
self.fig_dict[name]=fig
self.mplfigs.addItem(name) …Run Code Online (Sandbox Code Playgroud)