制心一处,无事不办
from PyQt5.Qt import *
class Window(QWidget):
def init(self):
super(Window, self).init()
self.setWindowTitle(‘’)
self.resize(500, 500)
self.setupui()
def setup_ui(self):
#对象的父子关系操作
_self.QObject对象的父子操作()
pass
def QObject对象的父子操作(self):
obj0 = QObject()
obj1 = QObject()
obj2 = QObject()
obj2.setObjectName(“2”)
obj3 = QObject()
obj4 = QObject()
obj5 = QObject()
print(**'obj0'**,obj0)<br /> print(**'obj1'**, obj1)<br /> print(**'obj2'**, obj2)<br /> print(**'obj3'**, obj3)<br /> print(**'obj4'**, obj4)<br /> print(**'obj5'**, obj5)_#设置父对象<br /> _obj1.setParent(obj0)<br /> obj2.setParent(obj0)<br /> obj3.setParent(obj1)<br /> obj4.setParent(obj2)<br /> obj5.setParent(obj2)_#返回父对象<br /> _print(obj1.parent())<br /> _#返回所有直接子对象,不递归<br /> _print(obj0.children())<br /> _#默认返回第一个子对象,但可以指定name返回指定的子对象<br /> _print(obj0.findChild( QObject))<br /> print(obj0.findChild(QObject,**"2"**))_#默认通过递归返回所有子对象<br /> _print(obj0.findChildren(QObject))_#Qt的内存管理机制<br /> _obj1 = QObject()<br /> self.obj1 = obj1<br /> obj2 = QObject()<br /> obj2.setParent(obj1)_#监听obj2对象被释放<br /> _obj2.destroyed.connect(**lambda **:print(**'obj2被释放了'**))**del **self.obj1
if name == ‘main‘:
import sys
# 创建应用程序对象
_app = QApplication(sys.argv)
# 创建控件
window = Window()
# 展示并执行
_window.show()
win1 = QWidget()<br /> win1.setStyleSheet(**"background:red;"**)<br /> win1.show()win2 = QWidget(win1)<br /> win2.setParent(win1)<br /> win2.setStyleSheet(**"background:blue;"**)<br /> win2.resize(200,200)<br /> win2.show()sys.exit(app.exec_())
