obtener widgets por nombre desde el diseño

¿Cómo debo proceder si quiero obtener un widget específico de un diseño en python Qt?

Lo que he hecho hasta ahora:

for i in range(self.ui.horizontalLayout_14.count()): #here it does fail name = self.ui.horizontalLayout_14.itemAt(i).objectName() #if the above would had worked, then I could do something like this for example if "button" in name: self.ui.horizontalLayout_14.itemAt(i).widget().close() 

Tenga en cuenta que, por ejemplo, estoy usando el button pero puede ser cualquier widget dentro del diseño, línea Edición, comboBox, tags, etc., pero no todos ellos.

El problema es que la función itemAt() devuelve el QLayoutItem y no un widget. Así que tienes que llamar a la función QLayoutItem::widget() para obtener el widget que contiene, es decir:

 name = self.ui.horizontalLayout_14.itemAt(i).widget().objectName() 

ACTUALIZAR

Sin embargo, puede hacer lo mismo mucho más fácil con el uso de la función QObject::findChild() . Es decir:

 widget = self.ui.findChild(QPushButton, "button") # Check whether the returned widget is null...