Код не доходит до первого условия в функции MainWindow::on_addTask_clicked()
Я пытаюсь добавить новый QLineEdit в макет ui->widget. Я использую условие if (layout) для проверки существования макета перед добавлением элемента. Однако, код не проходит через это условие и не выводит ожидаемое сообщение об ошибке.
Вот мой код:
void MainWindow::on_addTask_clicked()
{
QLineEdit *lineEdit = new QLineEdit(this);
lineEdit->setStyleSheet(ui->inTask->styleSheet());
QVBoxLayout *layout = qobject_cast<QVBoxLayout*>(ui->widget->layout());
lineEdit->setGeometry(ui->inTask->geometry().x() + 20, ui->inTask->geometry().top(), ui->inTask->width() + 10, ui->inTask->height());
if (layout) {
QRect prevGeometry = layout->itemAt(layout->count() - 1)->widget()->geometry();
int newX = prevGeometry.x();
int newY = prevGeometry.top() + 20;
int newWidth = prevGeometry.width();
int newHeight = prevGeometry.height();
lineEdit->setGeometry(newX, newY, newWidth, newHeight);
layout->addWidget(lineEdit);
} else {
qDebug() << "Ошибка: Макет не найден!";
}
lineEdit->show();
}
Почему код не проходит через условие if (layout) и выводит сообщение об ошибке, хотя макет существует? Как исправить эту проблему?