Synopsis¶
This example shows how to get a list of child objects of a specific type. The getChildrenOfType()
function can search for all such child objects, or search only to a limited depth (default depth is 1000).
Python:
def main():
startApplication(app)
# ...
widget = waitForObject(names.some_object_name)
# Find only immediate children of type LineEdit:
list1 = getChildrenOfType(widget, "LineEdit", 0)
# Find children of type LineEdit up to a depth of 2:
list2 = getChildrenOfType(widget, "LineEdit", 2)
# Find all children of type LineEdit:
listAll = getChildrenOfType(widget, "LineEdit")
def getChildrenOfType(parent, typename, depth=1000):
children = []
for child in object.children(parent):
if className(child) == typename:
children.append(child)
if depth:
children.extend(getChildrenOfType(child, typename, depth - 1))
return children
JavaScript:
function main()
{
startApplication(app);
// ...
widget = waitForObject(names.some_object_name)
// Find only immediate children of type LineEdit:
list1 = getChildrenOfType(widget, "LineEdit", 0);
// Find children of type LineEdit up to a depth of 2:
list2 = getChildrenOfType(widget, "LineEdit", 2);
// Find all children of type LineEdit:
listAll = getChildrenOfType(widget, "LineEdit");
}
function getChildrenOfType(parent, typeNameStr, depth)
{
if (depth == null) {
depth = 1000;
}
var children = [];
var allChildren = object.children(parent);
for (var i = 0; i < allChildren.length; i++) {
var child = allChildren[i];
if (typeName(child) == typeNameStr) {
children.push(child);
}
if (depth > 0) {
var subChildren = getChildrenOfType(child, typeNameStr, depth - 1)
for (var j = 0; j < subChildren.length; j++) {
children.push(subChildren[j]);
}
}
}
return children;
}