Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

interrupted by signal 11: SIGSEGV

PyQt4开发应用,窗口添加图像显示时出现的错误

问题描述:

应用程序异常关闭,但是在添加一些显示内容(print(str)),用来测试的时候,都是正常运行的。同时其他各项类的初始化内容和数据库调用等函数都能够正常运行,在程序结束前,matplotlib生成的图片也会正常出现在设定的窗口,然后就是一闪而过的自动关闭了。

debug过程:

经过一番debug,并未发现错误,相关的signal(信号)等也没有问题(自信满满)。

(虽然生成图像这个函数之后的几个功能也在跑),因为我只在生成函数这个图像处作出了更改(此处也提醒大家进行debug的时候一定要控制变量,当改变的东西多了,你就会不确定到底是哪里引起的错误)。

并且在网上看了一下SIGSEGV的用途和出现状况,觉得可能是生成图像时,生成的图像名字一样,造成内存占用,造成了影响于是我把生成图像的名字换成了两个,具体操作就是每次调用绘图函数时,给一个计数参数N,N%2==1:时,生成1.png,else:生成2.png,再根据N变量去设置在窗口上显示什么图片,这样就给了更多的时间去加载不一样的内存。结果还是不行。

记起来在图像上传到窗口之前也有类似的问题,更加确定问题是出现在上传显示图片之前的步骤。因为做窗口显示之前用matplotlib对数据进行可视化并保存图片,当plt.show()还在时,每次在应用中选中数据都会再自动生成一个matplotlib的窗口,当plt.show()注释掉时,才出现选中数据就自动关闭程序并报该错误的。

于是我又查看绘图函数进行调试。添加plt.close()这行时,图片已经可以正常显示,程序也不会再在选中数据后就自动关闭了,同时,在设计的窗口上也可以正常的去显示生成的图片。大功告成。

结果

本案例添加了plt.close()

总结

1.控制变量debug
2.在用了一些功能函数后,最好是把相应的功能关闭。(类似数据库调用后的关闭和open一个文件操作完成后的关闭)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值