小编J. *_*gin的帖子

在PyQt5 GUI中嵌入matplotlib时发生内存泄漏

基本上按照本教程,我使用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)

python pyqt matplotlib python-3.x pyqt5

2
推荐指数
1
解决办法
524
查看次数

标签 统计

matplotlib ×1

pyqt ×1

pyqt5 ×1

python ×1

python-3.x ×1