QHBoxLayout, QFormLayout traverse sub-components, find QLineEdit control

The layout is as follows:

QLineEdit * edit1 = new QLineEdit;
QLineEdit * edit2 = new QLineEdit;
QLineEdit * edit3 = new QLineEdit;
QLineEdit * edit4 = new QLineEdit;

QFormLayout * formLayout1 = new QFormLayout;
QFormLayout * formLayout2 = new QFormLayout;

formLayout1->addRow(QStringLiteral("Edit1"), edit1);
formLayout1->addRow(QStringLiteral("Edit2"), edit2);

formLayout2->addRow(QStringLiteral("Edit3"), edit3);
formLayout2->addRow(QStringLiteral("Edit4"), edit4);

QHBoxLayout * hLayout = new QHBoxLayout;
hLayout->addLayout(formLayout1);
hLayout->addLayout(formLayout2);

...
Traverse to find each layout and determine whether the QLineEdit input is empty
foreach(auto formLayoutChild, hLayout->children())
{           QFormLayout * formLayout = qobject_cast<QFormLayout*>(formLayoutChild);            if (formLayout != nullptr)            {                      int itemCount = formLayout->count();                       for(int itemIndex = 0; itemIndex <itemCount; itemIndex++)                      {                            QLayoutItem * item = formLayout->itemAt(itemIndex);                            QLineEdit * lineEdit = qobject_cast<QLineEdit*>(item->widget( ));                             if (lineEdit != nullptr)                             {










                                     if (lineEdit->text().isEmpty())
                                     {
                                               return false;
                                     }
                             }   
                      }
           }
}
return true;

Guess you like

Origin blog.csdn.net/jiesunliu3215/article/details/108829507