PyQt5对象之间的父子关系继承与查找
一、学习指导
我们在实例化对象的时候往往不止一个,而这些对象都会有一定的继承关系,PyQt5也不例外,而且在这点PyQt5做的比其他GUI框架更加优秀。PyQt5对象之间的父子关系继承与查找设置起来很简单。我们先看一下下面的代码:
二、代码演示
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() print('obj1',obj1) obj2 =QObject() print('obj2', obj2) obj3 =QObject() print('obj3', obj3) obj2.setParent(obj1) obj3.setParent(obj2) print(obj2.parent()) print(obj2.children()) print(obj1.findChild(QObject)) print(obj1.findChildren(QObject)) if __name__ == '__main__': app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
这里给大家注释一下
obj1.setParent(obj2) # 把obj2设置为obj1的父对象
obj3.setParent(obj1) # 把obj1设置为obj3的父对象
print(obj1.parent()) # 获取父对象
print(obj2.children()) # 获取obj2的子对象
print(obj2.findChild(QObject)) # 获取直接的子对象
print(obj2.findChildren(QObject)) # 获取所有的子对象