Как удалить динамически созданною кнопку в 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, поэтому не может найтись и удалиться. помогите исправить проблему.