¿Cómo encontrar widgets de un tipo dado en un QLayout?

Soy capaz de encontrar elQRadioButton de esta manera:

for(int i = 0; i < ui->verticalLayout->count(); i++)
{
    QRadioButton* r = qobject_cast<QRadioButton*>(ui->verticalLayout->itemAt(i)->widget());
    if(r->isChecked())
        //found it!
}

Pero no me gusta esta forma de iterar sobre elementos y me gustaría usar elforeach&nbsp;construir. Mi primer intento falla:

foreach(QRadioButton* child, ui->verticalLayout->findChildren<QRadioButton*>())
{
    if(child->isChecked())
        //found it!
}

El problema es que elui->verticalLayout->findChildren<QRadioButton*>()&nbsp;devuelve cero elementos Tampoco devuelve elementos confindChildren<QObject*>(). ¿Alguien puede explicar este comportamiento?

Nota:&nbsp;el titulo deesta&nbsp;La pregunta es casi idéntica a la mía, pero está relacionada con Python Qt y no contiene ninguna información útil para mí.

¿Niños vs elementos?

Experimentalmente supuse queui->verticalLayout->children().count()&nbsp;devuelve cero donde comoui->verticalLayout->count()&nbsp;devuelve el número de elementos que tengo en elverticalLayout. Esto implica queitemAt(i)&nbsp;yfindChild<QRadioButton*>()&nbsp;No acceda a la misma lista. Mirando la documentación de Qt enchildren()&nbsp;no me ayudo

¿Alguien puede señalarme un buen material sobre los conceptos de padres e hijos de Qt? Supongo que esto no tiene nada que ver con acceder a objetos anidados, que es lo que estoy tratando de lograr.

Editar

Según lo sugerido por Kuba Ober, las respuestas aesta pregunta&nbsp;contiene información valiosa sobre otro tema, mientras que su respuesta aclara mi pregunta sobre los niños del diseño. Por lo tanto, esta no es una pregunta duplicada.