制心一处,无事不办

    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()

    1. print(**'obj0'**,obj0)<br /> print(**'obj1'**, obj1)<br /> print(**'obj2'**, obj2)<br /> print(**'obj3'**, obj3)<br /> print(**'obj4'**, obj4)<br /> print(**'obj5'**, obj5)
    2. _#设置父对象<br /> _obj1.setParent(obj0)<br /> obj2.setParent(obj0)<br /> obj3.setParent(obj1)<br /> obj4.setParent(obj2)<br /> obj5.setParent(obj2)
    3. _#返回父对象<br /> _print(obj1.parent())<br /> _#返回所有直接子对象,不递归<br /> _print(obj0.children())<br /> _#默认返回第一个子对象,但可以指定name返回指定的子对象<br /> _print(obj0.findChild( QObject))<br /> print(obj0.findChild(QObject,**"2"**))
    4. _#默认通过递归返回所有子对象<br /> _print(obj0.findChildren(QObject))
    5. _#Qt的内存管理机制<br /> _obj1 = QObject()<br /> self.obj1 = obj1<br /> obj2 = QObject()<br /> obj2.setParent(obj1)
    6. _#监听obj2对象被释放<br /> _obj2.destroyed.connect(**lambda **:print(**'obj2被释放了'**))
    7. **del **self.obj1

    if name == main:
    import sys
    # 创建应用程序对象
    _app = QApplication(sys.argv)
    # 创建控件
    window = Window()
    # 展示并执行
    _window.show()

    1. win1 = QWidget()<br /> win1.setStyleSheet(**"background:red;"**)<br /> win1.show()
    2. win2 = QWidget(win1)<br /> win2.setParent(win1)<br /> win2.setStyleSheet(**"background:blue;"**)<br /> win2.resize(200,200)<br /> win2.show()
    3. sys.exit(app.exec_())