解决python tkinter界面设计下matplotlib绘图导致界面自动关闭问题

本文探讨了使用PyQt5和Matplotlib设计小程序时,如何避免界面关闭和内存溢出的问题。通过修改matplotlib后端设置,解决了plt.close()导致的界面关闭,并提供了内存释放的解决方案,确保了多次绘图后程序的稳定运行。
摘要由CSDN通过智能技术生成

一、问题背景及描述

        设计一个小程序,实现可选择性绘图保存等功能。界面设计采用python tkinter ,绘图采用matplotlib。

        程序设计完成在测试阶段出现绘图完成后界面自动关闭情况。

二、问题溯源

        通过调试发现当plt.close()去掉后问题得到暂时解决,但该解决方案存在内存溢出的风险(绘制的图不通过plt.close()释放内存,会导致多次绘图后内存会迅速占满内存)。

        plt.close()导致界面关闭,主要由于matplotlib绘图默认选择“tkagg",即选择tkinter进行绘图。当绘图和界面设计采用的后端互不影响时,可以解决上述问题。

三、解决方案

        在绘图程序部分加入下面两行代码即可。

import matplotlib
matplotlib.use("Agg")

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值