Lv.的博客

PyQt5 QObject 对象删除

复制代码
'''
        deleteLater()  # 在代码执行完之后删除对象
'''
################################
# PyQt5中文网 - PyQt5全套视频教程 #
#    https://www.PyQt5.cn/     #
#         主讲: 村长            #
################################
 
from PyQt5.Qt import *
import sys
 
class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("对象删除")
        self.resize(600,500)
        self.func_list()
 
    def func_list(self):
        self.func()
 
 
    def func(self):
        obj1 = QObject()
        self.obj1 = obj1
        obj2 = QObject()
        obj3 = QObject()
        obj2.setParent(obj1)
        obj3.setParent(obj2)
        print(obj1)
        print(obj2)
        print(obj3)
 
        obj1.destroyed.connect(lambda :print('obj1被释放'))
        obj2.destroyed.connect(lambda :print('obj2被释放'))
        obj3.destroyed.connect(lambda :print('obj3被释放'))
 
        # del obj2
        print(obj2.deleteLater())
        print(obj1.children())
 
        # 案例
        label1 = QLabel(self)
        label1.setText('label1')
        label1.move(50,50)
        label1.setStyleSheet('background-color:green')
 
        label2 = QLabel(self)
        label2.setText('label2')
        label2.move(100,100)
        label2.setStyleSheet('background-color:green')
 
        label3 = QLabel(self)
        label3.setText('label3')
        label3.move(150,150)
        label3.setStyleSheet('background-color:green')
 
        # label2.deleteLater()
        del label2
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
 
    window.show()
    sys.exit(app.exec_())
复制代码

 

'''
        deleteLater()  # 在代码执行完之后删除对象
'''
################################
# PyQt5中文网 - PyQt5全套视频教程 #
#    https://www.PyQt5.cn/     #
#         主讲: 村长            #
################################
 
from PyQt5.Qt import *
import sys
 
class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("对象删除")
        self.resize(600,500)
        self.func_list()
 
    def func_list(self):
        self.func()
 
 
    def func(self):
        obj1 = QObject()
        self.obj1 = obj1
        obj2 = QObject()
        obj3 = QObject()
        obj2.setParent(obj1)
        obj3.setParent(obj2)
        print(obj1)
        print(obj2)
        print(obj3)
 
        obj1.destroyed.connect(lambda :print('obj1被释放'))
        obj2.destroyed.connect(lambda :print('obj2被释放'))
        obj3.destroyed.connect(lambda :print('obj3被释放'))
 
        # del obj2
        print(obj2.deleteLater())
        print(obj1.children())
 
        # 案例
        label1 = QLabel(self)
        label1.setText('label1')
        label1.move(50,50)
        label1.setStyleSheet('background-color:green')
 
        label2 = QLabel(self)
        label2.setText('label2')
        label2.move(100,100)
        label2.setStyleSheet('background-color:green')
 
        label3 = QLabel(self)
        label3.setText('label3')
        label3.move(150,150)
        label3.setStyleSheet('background-color:green')
 
        # label2.deleteLater()
        del label2
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
 
    window.show()
    sys.exit(app.exec_())
posted @   Avatarx  阅读(201)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2016-05-31 SQL server插入数据后,获取自增长字段的值
2016-05-31 sqlserver 创建用户 sp_addlogin
2016-05-31 存储过程嵌套模板
2014-05-31 linux安装qwt插件linux
2014-05-31 qt超强绘图控件qwt - 安装及配置
2014-05-31 WIN7 下 Qt Creator 安装 QWT
点击右上角即可分享
微信分享提示