Как пример, у меня есть такой класс: class NodeEditorWindow : public

QWidget
{
private:
Scene* pScene;
QDMGraphicsView* pgrView;
QVBoxLayout* pvbLayout;
};
Я насоздавал в констукторе разных объектов динамически. И если я их не удалю будет же утечка, верно?

8 ответов

16 просмотров

Давайте смотреть. QDMGraphicsView это QWidget, QVBoxLayout это QLayout. Про них в этой статье написано А вот Scene что такое я не знаю

Valder-Man Автор вопроса
Michael Chambers
Давайте смотреть. QDMGraphicsView это QWidget, QVB...

Полагаю, вот ответ на мой вопрос: The layout takes over responsibility of the items added. Since QLayoutItem does not inherit QObject, we must delete the items manually. In the destructor, we remove each item from the list using takeAt(), and then delete it. Спасибо большое за ответ!

Valder Man
Полагаю, вот ответ на мой вопрос: The layout take...

Это про QLayoutItem, если вы реализуете свой QLayout. QLayout наследуется от QObject

Valder-Man Автор вопроса
Michael Chambers
Это про QLayoutItem, если вы реализуете свой QLayo...

Правильно ли я понял идею, что у объектов которые наследуются от QObject/QWidget, за удаление отвечает как раз-таки родитель?

Valder-Man Автор вопроса
Макс Воробьев
да. родитель удаляет своих детей

Еще одно небольшое уточнение, у меня есть класс: class Smth : public QWidget { }; Smth* ptr = new Smth(); QWidget, по логике не должен же удалять мой кастомный класс, верно? А значит лучше взять не сырой указатель, или вручную его удалить? Типа того: std::unique_ptr<Smth> ptr = std::make_unique<Smth>();

Valder Man
Еще одно небольшое уточнение, у меня есть класс: ...

Если затем вы установите этот виджет на layout, то у него появится родитель, а значит и ваш виджет в дальнейшем удалиться. А использовать обычный unique_ptr на QObject'ах можно только с кастомным делитером, который внутри зовет deleteLater.

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта