Допустим, я создал указатель на класс Кнопки внутри другого класса Окна, потом выделил под нее память. Как мне высвободить память потом из под кнопки? Переопределить метод класса закрытия Окна и там высвободить? Или указать родителем Окно через this и она автоматически высвободится? + еще как высвобождать память из под контейнеров? Буду очень признателен за хорошее объяснение)
Достаточно указать родителем кнопки окно или другой объект, который наследник QObject и он удаляется когда нужно. Для контейнеров можно умные указатели применить.
Вот такой код вполне будет работать.
lastWindow = new QDialog();
textLayout = new QVBoxLayout(lastWindow);
textEdit = new QTextEdit(lastWindow);
Только не забудьте удалить верхний экземпляр класса
delete lastWindow;
Т.к. у textLayout и textEdit указан родителем lastWindow, то при его удалении будут удалены также и они. Кроме того не забудьте о присвоении layout при процедурном создании формы. Должно получится както так.
lastWindow = new QDialog();
textLayout = new QVBoxLayout(lastWindow);
lastWindow->setLayout(textLayout);
textEdit = new QTextEdit(lastWindow);
textLayout->addItem(textEdit);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей