Qt::WA_DeleteOnClose - используете?
От: Shmj Ниоткуда  
Дата: 07.01.23 17:21
Оценка:
Используете ли вы Qt::WA_DeleteOnClose или удаляете вручную?

Вот, к примеру, по нажатию кнопки вы вызываете диалог. Можно поставить Qt::WA_DeleteOnClose для формы диалога а можно удалить вручную. Как вы делаете? Если вручную — то когда/где?

Так же вопрос — если в конструкторе этого самого диалога создаете auto* dsEffect = new QGraphicsDropShadowEffect(this); и применяете — нужно ли удалять вручную или оно само удалится вместе с удалением диалога?
Re: Qt::WA_DeleteOnClose - используете?
От: DiPaolo Россия  
Дата: 07.01.23 17:54
Оценка:
1) Тебя рашнфеллоу, что ли, укусил?

2) Для Qt есть отдельный раздел.

S>Используете ли вы Qt::WA_DeleteOnClose или удаляете вручную?

Ни то, ни другое.

S>Вот, к примеру, по нажатию кнопки вы вызываете диалог. Можно поставить Qt::WA_DeleteOnClose для формы диалога а можно удалить вручную. Как вы делаете? Если вручную — то когда/где?


S>Так же вопрос — если в конструкторе этого самого диалога создаете auto* dsEffect = new QGraphicsDropShadowEffect(this); и применяете — нужно ли удалять вручную или оно само удалится вместе с удалением диалога?


Посмотри как в Qt принято создавать объекты и кто ими владеет — https://doc.qt.io/qt-6/objecttrees.html.
Патриот здравого смысла
Re: Qt::WA_DeleteOnClose - используете?
От: Igore Россия  
Дата: 09.01.23 12:06
Оценка: 3 (1) +1
Здравствуйте, Shmj, Вы писали:

S>Используете ли вы Qt::WA_DeleteOnClose или удаляете вручную?

Зависит от задачи, обычно вручную.

S>Вот, к примеру, по нажатию кнопки вы вызываете диалог. Можно поставить Qt::WA_DeleteOnClose для формы диалога а можно удалить вручную. Как вы делаете? Если вручную — то когда/где?

Зависит от задачи, когда как. Вручную например когда после закрытия диалога нужно получить доступ к какому либо внутреннему состоянию диалога, которое не было прокинуто через signal. Разница между Qt::WA_DeleteOnClose и QScopedPtr<Dialog> скорей в организации кода, мне второй вариант больше нравится, так как в месте вызова всё видно.

S>Так же вопрос — если в конструкторе этого самого диалога создаете auto* dsEffect = new QGraphicsDropShadowEffect(this); и применяете — нужно ли удалять вручную или оно само удалится вместе с удалением диалога?

Удалится когда будет удален this, в Qt-e родители удаляют детей, ссылку на документацию уже давали.
Re: Qt::WA_DeleteOnClose - используете?
От: Skorodum Россия  
Дата: 13.01.23 14:24
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Используете ли вы Qt::WA_DeleteOnClose или удаляете вручную?


S>Вот, к примеру, по нажатию кнопки вы вызываете диалог. Можно поставить Qt::WA_DeleteOnClose для формы диалога а можно удалить вручную. Как вы делаете? Если вручную — то когда/где?

Вручную, наверное, никогда. Сейчас посмотрел свой текущие проект — ни одного явного delete.
* в Qt обычно родитель удаляет.
* иногда (редко) deleteLater.
* В очень случаях редких явное RAII.

S>Так же вопрос — если в конструкторе этого самого диалога создаете auto* dsEffect = new QGraphicsDropShadowEffect(this); и применяете — нужно ли удалять вручную или оно само удалится вместе с удалением диалога?

Вопросы владения явно в документации оговорены. Обычно первый параметр это родитель, который и удалит.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.