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;