Как удалить динамически созданною кнопку в qt

Я создаю динамически кнопки в layout(он создан в ui файле)

if (responseObject.contains("logins")) {
            // Если пришел список пользователей
            QJsonArray loginsArray = responseObject["logins"].toArray();
            qDebug() << "Активные пользователи:";
            for (const QJsonValue &value : loginsArray) {
                QPushButton *loginButton = new QPushButton(value.toString());
                loginButton->setObjectName(value.toString()); // Устанавливаем имя объекта
                layout->addWidget(loginButton);
                qDebug() << "Теперь количество элементов: "  << ui->UsersVerticalLayout->count();

                connect(loginButton, &QPushButton::clicked, this, [=]() {
                    handleUserButtonClick(loginButton->text());
                });

                qDebug() << value.toString();
            }
        } else if (responseObject.contains("login")) {
            // Если добавляется новый пользователь
            QString login = responseObject["login"].toString();
            qDebug() << "Новый пользователь:" << login;

            QPushButton *loginButton = new QPushButton(login);
            loginButton->setObjectName(login);
            layout->addWidget(new QPushButton(login));

            qDebug() << "Теперь количество элементов: " << ui->UsersVerticalLayout->count();
            connect(loginButton, &QPushButton::clicked, this, [=]() {
                handleUserButtonClick(loginButton->text());
            });
        }

затем я пытаюсь удалить определенную кнопку(по логину который мне приходит)

void MainWindow::deleteDisconnectUser(const QString& login)
{
    qDebug() << "Попал в удаление кнопки для логина:" << login;
    QPushButton* button = ui->UsersVerticalLayout->findChild<QPushButton*>(login);
    if(button)
    {
        button->hide();
        delete button;
    }
}

я попадаю в удаление, но кнопка не пропадает. Как решить эту проблему. Как я понял, кнопка не становится дочерним виджетом layout, поэтому не может найтись и удалиться. помогите исправить проблему.


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