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_())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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