¿Cómo puedo obtener QLineEdit enfocado actual en qt?

¿Cómo puedo identificar qué QLineEdit tiene el enfoque actual en qt?

Para establecer el enfoque para QLinEdit he intentado:

ui->linedit->setfocus(); 

Pero tampoco funciona para mí. ¿Cómo puedo resolver estos dos?

Para identificar qué Widget enfocado (QlineEdit o cualquier QWidget), necesita obtener todos sus hijos de widgets actuales, enviar cada uno a QLineEdit y verificar cuál tiene el foco, código de muestra:

 QList mylineEdits = this->findChildren(); QListIterator it(mylineEdits); // iterate through the list of widgets QWidget *lineEditField; while (it.hasNext()) { lineEditField = it.next(); // take each widget in the list if(QLineEdit *lineE = qobject_cast(lineEditField)) { // check if iterated widget is of type QLineEdit // if (lineE->hasFocus()) { // this has the focus ... } } } 

Segundo problema, centrado en QWidget, ya contestado en esta publicación :

Establecer el foco a un widget con la función setFocus() .

 ui->lineEdit_3->setFocus(); 

Puede verificar el enfoque en un widget usando la función hasFocus() .

 QWidget * widgetName = qApp->focusWidget(); qDebug () << widgetName->objectName(); 

salida : "lineEdit_3"

Cuando se cambia el widget enfocado QApplication::focusChanged(QWidget *old, QWidget *now) se emite la señal. Puede conectarlo a una ranura en la que haga lo que quiera, según el cambio de enfoque.