7.QObject 对象删除

 def delete_object(self):        # self 是window实例

        # obj1 = QObject()        # 注意当方法执行完毕后,局部变量obj1没被引用,会被自动释放。 
        # obj2 = QObject()
        # obj3 = QObject()

        obj1 = QObject()
        self.obj1 = obj1        # 只有当该实例对象被销毁,obj1才会被自动释放。
        obj2 = QObject()
        obj3 = QObject()

        obj3.setParent(obj2)    # 当obj1 被释放,obj2 和obj3 也被释放。
        obj2.setParent(obj1)

        obj1.destroyed.connect(lambda : print("obj1被释放了"))
        obj2.destroyed.connect(lambda : print("obj2被释放了"))
        obj3.destroyed.connect(lambda : print("obj3被释放了"))

        # del obj2        # 注意:obj2并不会被释放,因为还有obj1引用着它。
        obj2.deleteLater()        
        print(obj1.children())        # 输出:obj2 的地址
        # deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收 
        # 到这个event之后才会销毁对象

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值