pyqt中部件拖动会产生幻影,并且在删除的时候报出内存错误的问题(Process finished with exit code -1073740791 (0xC0000409)

prepareForGeometryChange

prepareForGeometryChange,prepareForGeometryChange,prepareForGeometryChange重要的事情说三遍,这段时间一直在用graphicsview,graphicsScene,graphicsitems等等这些个东西,主要我要使用这个做一个公式编辑器。

  1. 首先要知道的,在graphicsView这个组件中,他的鼠标移动事件是已经经过改写的了,所以呢,在上面的item如果你不改写鼠标事件的话,那么就可以移动在上面产生的item组件,这个无疑是非常好的,但是也有可能带来问题
  2. 问题主要就是,我两个物体之间的连线需要随着物体的移动而移动,但是在进行拖动的时候,这些个连线会产生幻影,并且在删除的时候会产生更多的问题,例如上面的内存报错
  3. 这个问题真的困扰了我很久了,一直在查阅资料,发现这种错误大家一个人有一个人的说话,但是终于让我找到了解决办法
  4. 关于prepareForGeometryChange这个函数我就不详细介绍了,解决的问题是:如果你要拖动一个物体的话,或者说让一个物体的形状进行快速的改变,例如我这个线,那就会产生各种各样意想不到的问题,例如内存错误。。。因为在拖动的时候,会产生很多的野指针,当你在删除控件的时候就会导致删除了一个并不存在的东西,或者原来的指针为空等等问题
    6.当然QT很人性化,他为了解决这个问题,就自带了一个prepareForGeometryChange函数,在你需要改变物体的形状的时候,一定要预先调用这个函数,完美解决问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值