[PyQt5-Node-Editor][进阶篇]使用Pyqt5制作节点编辑器(24)——修BUG

本文介绍了在PyQt5中创建节点编辑器时遇到的各种BUG,包括Edge复制后显示问题、切割线操作导致的崩溃以及自我连接导致的错误,并详细阐述了解决这些问题的方法,如添加代码刷新Edge、检查删除操作条件以及优化鼠标事件处理以避免崩溃。
摘要由CSDN通过智能技术生成

BUG千奇百怪,修BUG的方式也千奇百怪

BUG

Edge在多次复制后可能出现消失的显示BUG

在这里插入图片描述

在缩小放大后Edge又能正常显示
需要在
node_graphics_edge.py
里添加如下代码,让edge能够一直刷新(可能)

    def boundingRect(self):
        return self.shape().boundingRect()

    def shape(self):
        return self.updatePath()

切割线崩溃BUG

虽然显示没有问题了,但是在切割线对多个edge进行删除时,程序会崩溃
原因是当edge被删除时,sspos = self.edge.start_socket.position还在被调用(我也不知道为什么会出现这种情况,估计得益于QT的运行机制),此时self.edge.start_socket返回的是None,所以需要添加条件

class QDMGraphicsEdgeBezier(QDMGraphicsEdge):
    def updatePath(self):
        s = self.posSource
        d = self.posDestination
        dist = (d[0] - s[0]) * 0.5

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值