Код не доходит до первого условия в функции 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) и выводит сообщение об ошибке, хотя макет существует? Как исправить эту проблему?


Ответы (0 шт):