QObject对象有关父子关系的函数,以及应用的操作。
1.设置父对象
1、设置父对象:obj.setParent(p)参数p,是obj要设置的父对象。类似与在实际写控件时,将父控件当子控件的参数,形成父子关系。
2.获取父对象
1、获取父对象:obj.parent()父对象只能由一个,如果多次设置父对象,那么最后会覆盖掉前面的。
3.获取下层子对象
1、获取子对象:obj.children()返回一个列表。获取所有下一层子对象。例如:查找父窗口对象(self)下的所有对象:self.children()
4.查找单个子对象
1、找子对象:obj.findCh坡纠课柩ild(类型(或类型元组),ID(设置的对象名), 查找选项):1)第二个和第三个是可碚枞凇悄选参数:ID(设置的对象名), 查找选项。2)第一参数是子对象的类型,限定查找的对象的类型,可以是一个,如果是多个,应以元组类型传参。①如果第一个参数仅一个类型:obj.findChild(类型):返回符合参数类型的第一个子对象。例如:查找父窗口对象(self)下的子对象:self.findChild(QLabel)
2、②如果第一个参数是类型元组:obj.findChild((类型元组)):返回的仍然是第一个找到的子对象。例如:查找父窗口对象(self)下的子对象:self.findChild((QPushButton,QLabel)
3、obj.findChild如果有第二个可选参数:obj.findChild(type,name)必须是提供了有setObjectName()函数提供的名字。例如:查找父窗口对象(self)下的某个子对象:self.findChild(QPushButton,'btn-d')
4、obj.findChild如果有第三个可选参数:obj.findChild(type,name,查找选项)第三个参数有两个选项:①QQt.FindChildrenRecursively,叵萤茆暴(默认选项,可遍历所有子层查找)②Qt.FindDirectChildrenOnly,(仅在它的下层查找。)例如:查找父窗口内的某个控件对象:递归查找:self.findChild(QLabel,'lab-b',Qt.FindChildrenRecursively)直接查找:self.findChild(QLabel,'lab-b',Qt.FindDirectChildrenOnly))
5.查找多个子对象:
1、找子对象:obj.findChildren(类型(或类型元组),ID(设置的对象名), 查找选项):1)第二个和第三个是可选参数:ID(设置的对象名), 查找选项。2)第一参数是子对象的类型,限定查找的对象的类型,可以是一个,如果是多个,应以元组类型传参。3)返回所有最底层的对象一个列表。例如:查找父窗口对象(self)下的所有子对象:self.findChild((QLabel,QPushButton))
2、如果按第二个参数查找,必须是提供了有setObjectName()函数提供的名字。