pyqt的NavigationToolbar报错

项目场景:pyqt的NavigationToolbar在更新图片后保存图片时程序崩溃

项目相关背景:

写了一个基于pyqt的python程序,需要展示图像和加一个toolbar,以便对图像进行放大等操作


问题描述

项目中遇到的问题:

当程序展示第一个图像时,toolbar的下载按钮功能是可以正常使用的,但是当我展示第二张图片的时候,点击toolbar的保存图像按钮,程序突然崩溃了。
(给一张图像示例)
toolbar的保存图像按钮


原因分析:

问题的分析:

查看我关于toolbar的代码,我猜测是每一个toolbar都是跟他创建时使用到的图片是一一绑定的,如果你更新了图片,但toolbar还是使用的上一张图片对应的toolbar,此时toolbar的功能是无法正常使用的,一旦你点击toolbar的任何功能按钮,程序就会报错崩溃
代码如下

        if self.toolbar is not None:    # 上个toolbar还存在
			pass
        else:
            self.toolbar = NavigationToolbar(self.figure, self.tab)
            self.verticalLayout_6.addWidget(self.toolbar)

解决方案:

问题的具体解决方案:

修改代码如下,即可解决问题

        if self.toolbar is not None:    # 上个toolbar还存在
            # 更新toolbar,toolbar与图片一一绑定
            self.verticalLayout_6.removeWidget(self.toolbar)		# 先从父组件中移除toolbar
            self.toolbar = NavigationToolbar(self.figure, self.tab)	# 重新创建一个toolbar
            self.verticalLayout_6.addWidget(self.toolbar)		# 将此时的toolbar再次绑定到父组件中
        else:
            self.toolbar = NavigationToolbar(self.figure, self.tab)
            self.verticalLayout_6.addWidget(self.toolbar)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倚楼去听风雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值